Book description
Es heißt, dass Google über zwei Milliarden Anwendungscontainer pro Woche deployt. Wie ist das möglich? Diese Frage hat Google mit einem Projekt namens Kubernetes beantwortet, einem Cluster-Orchestrierer als Open Source (der auf dem firmeninternen Borg-System basiert), welcher das Bauen, Deployen und Warten skalierbarer, verteilter Systeme in der Cloud radikal vereinfacht. Dieser praktische Leitfaden zeigt Ihnen, wie Kubernetes und die Container-Technologie Ihnen dabei helfen können, in Bezug auf Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz in ganz neue Bereiche vorzudringen.
Table of contents
- Cover
- Titel
- Impressum
- Widmung
- Inhaltsverzeichnis
- Vorwort
-
1 Einführung
- 1.1 Schnelligkeit
- 1.1.1 Der Wert der Immutabilität
- 1.1.2 Deklarative Konfiguration
- 1.1.3 Selbstheilende Systeme
- 1.2 Ihren Service und Ihre Teams skalieren
- 1.2.1 Entkoppeln
- 1.2.2 Einfaches Skalieren für Anwendungen und Cluster
- 1.2.3 Entwicklungs-Teams mit Microservices skalieren
- 1.2.4 Konsistenz und Skalierung durch Separation of Concerns
- 1.3 Abstrahieren Sie Ihre Infrastruktur
- 1.4 Effizienz
- 1.5 Zusammenfassung
-
2 Container erstellen und ausführen
- 2.1 Container-Images
- 2.1.1 Das Docker-Image-Format
- 2.2 Anwendungs-Images mit Docker bauen
- 2.2.1 Dockerfiles
- 2.2.2 Sicherheit von Images
- 2.2.3 Die Image-Größe optimieren
- 2.3 Images in einer Remote-Registry ablegen
- 2.4 Die Docker Container Runtime
- 2.4.1 Container mit Docker ausführen
- 2.4.2 Die kuard-Anwendung erforschen
- 2.4.3 Den Ressourcen-Einsatz begrenzen
- 2.5 Aufräumen
- 2.6 Zusammenfassung
-
3 Ein Kubernetes-Cluster deployen
- 3.1 Kubernetes auf einem öffentlichen Cloud-Provider installieren
- 3.1.1 Google Container Service
- 3.1.2 Kubernetes auf dem Azure Container Service installieren
- 3.1.3 Kubernetes auf den Amazon Web Services installieren
- 3.2 Kubernetes mit minikube lokal installieren
- 3.3 Kubernetes auf dem Raspberry Pi ausführen
- 3.4 Der Kubernetes-Client
- 3.4.1 Den Cluster-Status prüfen
- 3.4.2 Worker-Knoten in Kubernetes auflisten
- 3.5 Cluster-Komponenten
- 3.5.1 Kubernetes-Proxy
- 3.5.2 Kubernetes-DNS
- 3.5.3 Kubernetes-UI
- 3.6 Zusammenfassung
- 4 Häufige kubectl-Befehle
-
5 Pods
- 5.1 Pods in Kubernetes
- 5.2 In Pods denken
- 5.3 Das Pod-Manifest
- 5.3.1 Einen Pod erstellen
- 5.3.2 Ein Pod-Manifest schreiben
- 5.4 Pods starten
- 5.4.1 Pods auflisten
- 5.4.2 Pod-Details
- 5.4.3 Einen Pod löschen
- 5.5 Auf Ihren Pod zugreifen
- 5.5.1 Port-Forwarding einsetzen
- 5.5.2 Mehr Informationen aus Logs erhalten
- 5.5.3 Befehle in Ihrem Container mit exec ausführen
- 5.5.4 Dateien von und auf Container kopieren
- 5.6 Health-Checks
- 5.6.1 Liveness-Probe
- 5.6.2 Readiness-Probe
- 5.6.3 Arten von Health-Checks
- 5.7 Ressourcen-Management
- 5.7.1 Ressourcen-Anforderungen: Minimal notwendige Ressourcen
- 5.7.2 Den Ressourcen-Einsatz durch Grenzen beschränken
- 5.8 Daten mit Volumes persistieren
- 5.8.1 Volumes in Pods definieren
- 5.8.2 Volumes in Pods nutzen
- 5.8.3 Daten auf Remote-Speicher persistieren
- 5.9 Fügen Sie alles zusammen
- 5.10 Zusammenfassung
- 6 Labels und Annotations
-
7 Service-Discovery
- 7.1 Was ist Service-Discovery?
- 7.2 Das Service-Objekt
- 7.2.1 Service-DNS
- 7.2.2 Readiness-Checks
- 7.3 Über das Cluster hinausschauen
- 7.4 Cloud-Integration
- 7.5 Weitere Details
- 7.5.1 Endpunkte
- 7.5.2 Manuelle Service-Discovery
- 7.5.3 kube-proxy und Cluster-IPs
- 7.5.4 Umgebungsvariablen zur Cluster-IP
- 7.6 Aufräumen
- 7.7 Zusammenfassung
-
8 ReplicaSets
- 8.1 Reconciliation-Schleifen
- 8.2 Die Verbindung zwischen Pods und ReplicaSets
- 8.2.1 Bestehende Container übernehmen
- 8.2.2 Container in Quarantäne stecken
- 8.3 Mit ReplicaSets designen
- 8.4 Spezifikation eines ReplicaSets
- 8.4.1 Pod-Templates
- 8.4.2 Labels
- 8.5 Ein ReplicaSet erstellen
- 8.6 Ein ReplicaSet untersuchen
- 8.6.1 Ein ReplicaSet über einen Pod finden
- 8.6.2 Eine Gruppe von Pods für ein ReplicaSet finden
- 8.7 ReplicaSets skalieren
- 8.7.1 Imperatives Skalieren mit kubectl scale
- 8.7.2 Deklaratives Skalieren mit kubectl appy
- 8.7.3 Ein ReplicaSet automatisch skalieren
- 8.8 ReplicaSets löschen
- 8.9 Zusammenfassung
-
9 DaemonSets
- 9.1 Der DaemonSet-Scheduler
- 9.2 DaemonSets erstellen
- 9.3 DaemonSets auf bestimmte Knoten beschränken
- 9.3.1 Knoten mit Labels versehen
- 9.3.2 Knoten-Selektoren
- 9.4 Ein DaemonSet aktualisieren
- 9.4.1 Ein DaemonSet durch das Löschen der einzelnen Pods aktualisieren
- 9.4.2 Rollierendes Update eines DaemonSet
- 9.5 Ein DaemonSet löschen
- 9.6 Zusammenfassung
- 10 Jobs
-
11 ConfigMaps und Secrets
- 11.1 ConfigMaps
- 11.1.1 ConfigMaps erstellen
- 11.1.2 Eine ConfigMap verwenden
- 11.2 Secrets
- 11.2.1 Secrets erstellen
- 11.2.2 Secrets konsumieren
- 11.2.3 Private Docker-Registries
- 11.3 Namensbeschränkungen
- 11.4 ConfigMaps und Secrets managen
- 11.4.1 Ausgabe
- 11.4.2 Erstellen
- 11.4.3 Aktualisieren
- 11.5 Zusammenfassung
-
12 Deployments
- 12.1 Ihr erstes Deployment
- 12.1.1 Deployment-Interna
- 12.2 Deployments erstellen
- 12.3 Deployments verwalten
- 12.4 Deployments aktualisieren
- 12.4.1 Ein Deployment skalieren
- 12.4.2 Ein Container-Image aktualisieren
- 12.4.3 Rollout-History
- 12.5 Deployment-Strategien
- 12.5.1 Recreate-Strategie
- 12.5.2 RollingUpdate-Strategie
- 12.5.3 Rollouts verlangsamen, um die Service-Qualität sicherzustellen
- 12.6 Ein Deployment löschen
- 12.7 Zusammenfassung
-
13 Storage-Lösungen in Kubernetes integrieren
- 13.1 Externe Services importieren
- 13.1.1 Services ohne Selektoren
- 13.1.2 Grenzen für externe Services: Health-Checking
- 13.2 Zuverlässige Singletons ausführen
- 13.2.1 Ein MySQL-Singleton ausführen
- 13.2.2 Dynamisches Volume-Provisioning
- 13.3 Kubernetes-eigenes Storage mit StatefulSets
- 13.3.1 Eigenschaften von StatefulSets
- 13.3.2 Manuell replizierte MongoDB mit StatefulSets
- 13.3.3 Das MongoDB-Cluster automatisch erstellen
- 13.3.4 Persistente Volumes und StatefulSets
- 13.3.5 Zum Abschluss: Readiness-Proben
- 13.4 Zusammenfassung
-
14 Reale Anwendungen deployen
- 14.1 Parse
- 14.1.1 Voraussetzungen
- 14.1.2 Den Parse-Server bauen
- 14.1.3 Den Parse-Server deployen
- 14.1.4 Parse testen
- 14.2 Ghost
- 14.2.1 Ghost konfigurieren
- 14.3 Redis
- 14.3.1 Redis konfigurieren
- 14.3.2 Einen Redis-Service erstellen
- 14.3.3 Redis deployen
- 14.3.4 Mit unserem Redis-Cluster experimentieren
- 14.4 Zusammenfassung
- Anhang A Ein Kubernetes-Cluster aus Raspberry Pis bauen
- Index
- Fußnoten
Product information
- Title: Kubernetes
- Author(s):
- Release date: January 2018
- Publisher(s): dpunkt
- ISBN: 9783864905421
You might also like
video
CCNA 200-301
More Than 16 Hours of Video Instruction Overview CCNA 200-301 Complete Video Course is a comprehensive …
book
Versionsverwaltung mit Git
Von grundlegenden Funktionen über die Handhabung von Branches und Remote-Repositories bis zu Tipps und Tricks für …
book
Docker Praxiseinstieg
Docker-Images und -Container verwenden Container deployen und debuggen Einsatz von Tools: Docker Swarm, Kubernetes, Amazon EC2 …
book
The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems
This book teaches you how to evaluate a distributed system from the perspective of immutable objects. …