Kubernetes Eine kompakte Einführung

Long description: Einfach und schnell erklärt von den Kubernetes-Mitbegründern persönlich alles, was Sie über Kubernetes wissen müssen für Einsteiger und Admins ohne Kubernetes-Vorkenntnisse aktualisierte und erweiterte Auflage Kubernetes vereinfacht das Bauen, Deployen und Warten skal...

Descripción completa

Detalles Bibliográficos
Autor principal: Burns, Brendan (-)
Otros Autores: Beda, Joe, Hightower, Kelsey, Demmig, Thomas
Formato: Libro electrónico
Idioma:Alemán
Publicado: Heidelberg : dpunkt.verlag 2020.
Edición:2nd ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630860306719
Tabla de Contenidos:
  • Intro
  • Inhaltsverzeichnis
  • Vorwort
  • Kubernetes: Eine Widmung
  • Wer dieses Buch lesen sollte
  • Warum wir dieses Buch geschrieben haben
  • Warum wir dieses Buch aktualisiert haben
  • Ein Wort zu aktuellen Cloud-nativen Anwendungen
  • Was Sie in diesem Buch finden
  • Online-Ressourcen
  • Konventionen in diesem Buch
  • Tipp
  • Warnung
  • Der Download und Einsatz von Codebeispielen
  • Wie Sie uns erreichen
  • Danksagungen
  • 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
  • Abb. 1-1 Eine Möglichkeit, wie die verschiedenen Operations-Teams durch APIs entkoppelt sind
  • 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
  • Container-Layering
  • 2.2 Anwendungs-Images mit Docker bauen
  • 2.2.1 Dockerfiles
  • Listing 2-1 package.json
  • Listing 2-2 server.js
  • Listing 2-3 .dockerignore
  • Listing 2-4 Dockerfile
  • 2.2.2 Die Image-Größe optimieren
  • 2.2.3 Sicherheit von Images
  • 2.3 Multistage Image Build
  • 2.4 Images in einer Remote-Registry ablegen
  • 2.5 Die Docker Container Runtime
  • 2.5.1 Container mit Docker ausführen
  • 2.5.2 Die kuard-Anwendung erforschen
  • 2.5.3 Den Ressourcen-Einsatz begrenzen
  • Speicher-Ressourcen begrenzen
  • CPU-Ressourcen begrenzen
  • 2.6 Aufräumen
  • 2.7 Zusammenfassung
  • 3 Ein Kubernetes-Cluster deployen
  • 3.1 Kubernetes auf einem öffentlichen Cloud-Provider installieren
  • 3.1.1 Google Kubernetes Engine.
  • 3.1.2 Kubernetes mit dem Azure Kubernetes Service installieren
  • 3.1.3 Kubernetes auf den Amazon Web Services installieren
  • 3.1.4 Kubernetes mit minikube lokal installieren
  • Tipp
  • 3.2 Kubernetes in Docker ausführen
  • 3.3 Kubernetes auf dem Raspberry Pi ausführen
  • 3.4 Der Kubernetes-Client
  • 3.4.1 Den Cluster-Status prüfen
  • Tipp
  • Tipp
  • 3.4.2 Worker-Knoten in Kubernetes auflisten
  • 3.5 Cluster-Komponenten
  • 3.5.1 Kubernetes-Proxy
  • 3.5.2 Kubernetes-DNS
  • Tipp
  • 3.5.3 Kubernetes-UI
  • 3.6 Zusammenfassung
  • 4 Häufige kubectl-Befehle
  • 4.1 Namensräume
  • 4.2 Kontexte
  • 4.3 Objekte der Kubernetes-API anzeigen
  • 4.4 Kubernetes-Objekte erstellen, aktualisieren und löschen
  • Tipp
  • 4.5 Objekte mit einem Label und Anmerkungen versehen
  • 4.6 Debugging-Befehle
  • Tipp
  • 4.7 Autovervollständigen von Befehlen
  • 4.8 Alternative Möglichkeiten zur Kommunikation mit Ihrem Cluster
  • 4.9 Zusammenfassung
  • 5 Pods
  • Abb. 5-1 Ein Beispiel-Pod mit zwei Containern und einem gemeinsamen Dateisystem
  • Tipp
  • 5.1 Pods in Kubernetes
  • 5.2 In Pods denken
  • 5.3 Das Pod-Manifest
  • Tipp
  • 5.3.1 Einen Pod erstellen
  • 5.3.2 Ein Pod-Manifest schreiben
  • Listing 5-1 kuard-pod.yaml
  • 5.4 Pods starten
  • 5.4.1 Pods auflisten
  • Tipp
  • 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
  • Tipp
  • 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
  • Listing 5-2 kuard-pod-health.yaml
  • Tipp
  • 5.6.2 Readiness-Probe
  • 5.6.3 Arten von Health-Checks
  • 5.7 Ressourcen-Management
  • 5.7.1 Ressourcen-Anforderungen: Minimal notwendige Ressourcen
  • Listing 5-3 kuard-pod-resreq.yaml
  • Tipp
  • Details zu den Request-Grenzen
  • Tipp.
  • 5.7.2 Den Ressourcen-Einsatz durch Grenzen beschränken
  • Listing 5-4 kuard-pod-reslim.yaml
  • 5.8 Daten mit Volumes persistieren
  • 5.8.1 Volumes in Pods definieren
  • Listing 5-5 kuard-pod-vol.yaml
  • 5.8.2 Volumes in Pods nutzen
  • Kommunikation/Synchronisation
  • Cache
  • Persistente Daten
  • Das Host-Dateisystem mounten
  • 5.8.3 Daten auf Remote-Speicher persistieren
  • 5.9 Fügen Sie alles zusammen
  • Listing 5-6 kuard-pod-full.yaml
  • 5.10 Zusammenfassung
  • 6 Labels und Anmerkungen
  • 6.1 Labels
  • Tipp
  • Tab. 6-1 Beispiele für Labels
  • 6.1.1 Labels anwenden
  • Listing 6-1 alpaca-prod.yaml
  • Listing 6-2 alpaca-test.yaml
  • Listing 6-3 bandicoot-prod.yaml
  • Listing 6-4 bandicoot-staging.yaml
  • Abb. 6-1 Darstellung der Labels für unsere Deployments
  • 6.1.2 Labels anpassen
  • Warnung
  • 6.1.3 Label-Selektoren
  • Tipp
  • Tab. 6-2 Selektor-Operatoren
  • 6.1.4 Label-Selektoren in API-Objekten
  • 6.1.5 Labels in der Architektur von Kubernetes
  • 6.2 Anmerkungen
  • 6.2.1 Anmerkungen definieren
  • Warnung
  • 6.3 Aufräumen
  • 6.4 Zusammenfassung
  • 7 Service-Discovery
  • 7.1 Was ist Service-Discovery?
  • 7.2 Das Service-Objekt
  • Listing 7-1 alpaca-prod.yaml
  • Listing 7-2 bandicoot-prod.yaml
  • 7.2.1 Service-DNS
  • 7.2.2 Readiness-Checks
  • 7.3 Über das Cluster hinausschauen
  • 7.4 Cloud-Integration
  • Tipp
  • 7.5 Weitere Details
  • 7.5.1 Endpunkte
  • 7.5.2 Manuelle Service-Discovery
  • 7.5.3 kube-proxy und Cluster-IPs
  • Abb. 7-1 Konfigurieren und Verwenden einer Cluster-IP
  • Tipp
  • 7.5.4 Umgebungsvariablen zur Cluster-IP
  • Tab. 7-1 Umgebungsvariablen des Service
  • 7.6 Mit anderen Umgebungen verbinden
  • 7.7 Aufräumen
  • 7.8 Zusammenfassung
  • 8 HTTP Load Balancing mit Ingress
  • Abb. 8-1 Eine typische Ingress-Konfiguration
  • 8.1 Ingress-Spec versus Ingress-Controller
  • 8.2 Contour installieren
  • Tipp
  • 8.2.1 DNS konfigurieren.
  • 8.2.2 Eine lokale hosts-Datei konfigurieren
  • 8.3 Ingress verwenden
  • 8.3.1 Einfachste Anwendung
  • Listing 8-1 simple-ingress.yaml
  • 8.3.2 Hostnamen verwenden
  • Listing 8-2 host-ingress.yaml
  • 8.3.3 Pfade verwenden
  • Listing 8-3 path-ingress.yaml
  • 8.3.4 Aufräumen
  • 8.4 Fortgeschrittenere Themen und Probleme mit Ingress
  • 8.4.1 Mehrere Ingress-Controller laufen lassen
  • 8.4.2 Mehrere Ingress-Objekte
  • 8.4.3 Ingress und Namensräume
  • 8.4.4 Path Rewriting
  • 8.4.5 TLS
  • Listing 8-4 tls-secret.yaml
  • Listing 8-5 tls-ingress.yaml
  • 8.5 Alternative Ingress-Implementierungen
  • 8.6 Die Zukunft von Ingress
  • 8.7 Zusammenfassung
  • 9 ReplicaSets
  • Tipp
  • 9.1 Reconciliation-Schleifen
  • 9.2 Die Verbindung zwischen Pods und ReplicaSets
  • 9.2.1 Bestehende Container übernehmen
  • 9.2.2 Container in Quarantäne stecken
  • 9.3 Mit ReplicaSets designen
  • 9.4 Spezifikation eines ReplicaSets
  • Listing 9-1 kuard-rs.yaml
  • 9.4.1 Pod-Templates
  • 9.4.2 Labels
  • Tipp
  • 9.5 Ein ReplicaSet erstellen
  • 9.6 Ein ReplicaSet untersuchen
  • 9.6.1 Ein ReplicaSet über einen Pod finden
  • 9.6.2 Eine Gruppe von Pods für ein ReplicaSet finden
  • 9.7 ReplicaSets skalieren
  • 9.7.1 Imperatives Skalieren mit kubectl scale
  • 9.7.2 Deklaratives Skalieren mit kubectl appy
  • 9.7.3 Ein ReplicaSet automatisch skalieren
  • Tipp
  • Basierend auf der CPU automatisch skalieren
  • Warnung
  • 9.8 ReplicaSets löschen
  • 9.9 Zusammenfassung
  • 10 Deployments
  • Tipp
  • 10.1 Ihr erstes Deployment
  • 10.1.1 Deployment-Interna
  • 10.2 Deployments erstellen
  • Tipp
  • 10.3 Deployments verwalten
  • 10.4 Deployments aktualisieren
  • 10.4.1 Ein Deployment skalieren
  • 10.4.2 Ein Container-Image aktualisieren
  • Warnung
  • 10.4.3 Rollout-History
  • Warnung
  • 10.5 Deployment-Strategien
  • 10.5.1 Recreate-Strategie
  • 10.5.2 RollingUpdate-Strategie.
  • Mehrere Versionen Ihres Service managen
  • Abb. 10-1 Entkoppelte (links) und gekoppelte (rechts) Anwendungs-Architektur
  • Ein rollierendes Update konfigurieren
  • Tipp
  • Tipp
  • 10.5.3 Rollouts verlangsamen, um die Service-Qualität sicherzustellen
  • Warnung
  • Tipp
  • Abb. 10-2 Der Deployment-Lebenszyklus von Kubernetes
  • 10.6 Ein Deployment löschen
  • 10.7 Ein Deployment überwachen
  • 10.8 Zusammenfassung
  • 11 DaemonSets
  • 11.1 Der DaemonSet-Scheduler
  • Tipp
  • 11.2 DaemonSets erstellen
  • Listing 11-1 fluentd.yaml
  • 11.3 DaemonSets auf bestimmte Knoten beschränken
  • 11.3.1 Knoten mit Labels versehen
  • 11.3.2 Knoten-Selektoren
  • Listing 11-2 nginx-fast-storage.yaml
  • Warnung
  • 11.4 Ein DaemonSet aktualisieren
  • 11.4.1 Rollierendes Update eines DaemonSet
  • 11.5 Ein DaemonSet löschen
  • Warnung
  • 11.6 Zusammenfassung
  • 12 Jobs
  • 12.1 Das Job-Objekt
  • 12.2 Job-Muster
  • Tab. 12-1 Job-Muster
  • 12.2.1 Einmalig
  • Listing 12-1 job-oneshot.yaml
  • Tipp
  • Pod-Fehler
  • Listing 12-2 job-oneshot-failure1.yaml
  • 12.2.2 Parallelism
  • Listing 12-3 job-parallel.yaml
  • 12.2.3 Work-Queues
  • Abb. 12-1 Parallele Jobs
  • Eine Work-Queue starten
  • Listing 12-4 rs-queue.yaml
  • Listing 12-5 service-queue.yaml
  • Die Queue füllen
  • Listing 12-6 load-queue.sh
  • Den Konsumenten-Job erstellen
  • Listing 12-7 job-consumers.yaml
  • Aufräumen
  • 12.3 CronJobs
  • 12.4 Zusammenfassung
  • 13 ConfigMaps und Secrets
  • 13.1 ConfigMaps
  • 13.1.1 ConfigMaps erstellen
  • Listing 13-1 my-config.txt
  • 13.1.2 Eine ConfigMap verwenden
  • Listing 13-2 kuard-config.yaml
  • Abb. 13-1 kuard zeigt seine Umgebung.
  • Abb. 13-2 Das Verzeichnis /config aus Sicht von kuard
  • 13.2 Secrets
  • Warnung
  • 13.2.1 Secrets erstellen
  • Tipp
  • Warnung
  • 13.2.2 Secrets konsumieren
  • Secrets-Volumes
  • Listing 13-3 kuard-secret.yaml
  • 13.2.3 Private Docker-Registries.
  • Listing 13-4 kuard-secret-ips.yaml.