1 option
Kubernetes : Eine kompakte Einführung.
- Format:
- Book
- Author/Creator:
- Burns, Brendan.
- Language:
- German
- Subjects (All):
- Google.
- Cloud.
- Docker.
- container.
- DevOps.
- raspberry-pi.
- borg-system.
- continuous-delivery.
- VM.
- deplyoment.
- Redis.
- virtual-machines.
- Compose.
- Physical Description:
- 1 online resource (264 pages)
- Edition:
- 2nd ed.
- Place of Publication:
- Heidelberg : dpunkt.verlag, 2020.
- Summary:
- 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 skalierbarer, verteilter Systeme in der Cloud radikal. Dieser praktische Leitfaden zeigt Ihnen, wie Kubernetes und die Container-Technologie dabei helfen können, in Bezug auf Schnelligkeit, Agilität, Zuverlässigkeit und Effizienz in ganz neue Bereiche vorzudringen.Die Autoren Brendan Burns, Joe Beda und Kelsey Hightower haben bei Google und in anderen Firmen mit Kubernetes gearbeitet und erklären Ihnen, wie sich dieses System in den Lebenszyklus einer verteilten Anwendung einfügt. Sie werden lernen, wie Sie Tools und APIs einsetzen, um skalierbare, verteilte Systeme zu automatisieren – egal ob es sich um Online-Services, Systeme zum maschinellen Lernen oder ein Cluster aus Raspberry Pis handelt. - Lernen Sie die Herausforderungen verteilter Systeme kennen, die Sie mit Kubernetes angehen können. - Tauchen Sie ein in die containerisierte Anwendungsentwicklung und nutzen Sie dabei zum Beispiel Docker-Container. - Erstellen Sie Container im Docker-Image-Format mit Kubernetes und lassen Sie sie über die Docker-Runtime ausführen. - Begutachten Sie die zentralen Konzepte und API-Objekte von Kubernetes, die notwendig sind, um Anwendungen produktiv laufen zu lassen. - Rollen Sie neue Softwareversionen zuverlässig ohne Downtime oder Fehler aus. - Lernen Sie aus Beispielen zum Entwickeln und Deployen realer Anwendungen in Kubernetes. In nur wenigen Jahren hat sich Kubernetes an die Spitze einer weitreichenden Revolution in der Anwendungsentwicklung gesetzt. Es löst seit langem bestehende Probleme in Anwendungsentwicklung und -management auf eine saubere und trotzdem sehr leistungsfähige Art und Weise. Brendan, Joe und Kelsey waren zentrale Mitspieler beim Auslösen und Vorantreiben dieser Revolution. Ihr Buch dient als Grundlage, um die Technologie Kubernetes, aber auch die dahinterstehenden Kräfte bei der Transformation zu verstehen.Eric Brewer, Vice President, Google
- Biographical note: Brendan Burns begann seine Karriere mit einem kurzen Einsatz in der Software-Branche, bevor er sich mit einem PhD in Robotik auf die Bewegungsplanung für menschenähnliche Roboterarme konzentrierte. Darauf folgte eine kurze Zeit als Informatik-Professor. Schließlich kehrte er nach Seattle zurück und kam zu Google, wo er an der Web-Suchinfrastruktur mit einem Schwerpunkt auf Low-Latency Indexing arbeitete. Dort gründete er auch zusammen mit Joe Beda und Craig McLuckie das Kubernetes-Projekt. Brendan Burns ist aktuell Director of Engineering bei Microsoft Azure.Joe Beda begann seine Karriere bei Microsoft am Internet Explorer (er war jung und naiv). Während der sieben Jahre bei Microsoft und der zehn Jahre bei Google hat Joe Beda an GUI-Frameworks, Echtzeit-Sprache und Chat, Telefonie, maschinellem Lernen für Anzeigen und Cloud Computing gearbeitet. Vor allem aber hat er bei Google die Google Compute Engine aus der Taufe gehoben und zusammen mit Brendan Burns und Craig McLuckie Kubernetes geschaffen. Joe Beda ist jetzt CTO von Heptio, einem Start-up, das er zusammen mit Craig McLuckie gegründet hat. Auf Seattle als seine Heimat ist er sehr stolz.Kelsey Hightower hat in seiner IT-Karriere schon so gut wie jede Rolle übernommen und mag Leadership-Rollen, die sich darauf fokussieren, Dinge umzusetzen und Software auszuliefern. Kelsey Hightower ist ein großer Freund von Open Source und sein Schwerpunkt liegt darin, einfache Werkzeuge zu bauen, die die Leute glücklich machen. Wenn er gerade keinen Go-Code schreibt, finden Sie ihn eventuell beim Unterrichten in technischen Workshops, die alles von der Programmierung bis zur Systemverwaltung abdecken.
- Contents:
- 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
- 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
- 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
- 4.1 Namensräume
- 4.2 Kontexte
- 4.3 Objekte der Kubernetes-API anzeigen
- 4.4 Kubernetes-Objekte erstellen, aktualisieren und löschen
- 4.5 Objekte mit einem Label und Anmerkungen versehen
- 4.6 Debugging-Befehle
- 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
- 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
- Listing 5-1 kuard-pod.yaml
- 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
- Listing 5-2 kuard-pod-health.yaml
- 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
- 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
- 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
- 6.1.3 Label-Selektoren
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Basierend auf der CPU automatisch skalieren
- 9.8 ReplicaSets löschen
- 9.9 Zusammenfassung
- 10 Deployments
- 10.1 Ihr erstes Deployment
- 10.1.1 Deployment-Interna
- 10.2 Deployments erstellen
- 10.3 Deployments verwalten
- 10.4 Deployments aktualisieren
- 10.4.1 Ein Deployment skalieren
- 10.4.2 Ein Container-Image aktualisieren
- 10.4.3 Rollout-History
- 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
- 10.5.3 Rollouts verlangsamen, um die Service-Qualität sicherzustellen
- 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
- 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
- 11.4 Ein DaemonSet aktualisieren
- 11.4.1 Rollierendes Update eines DaemonSet
- 11.5 Ein DaemonSet löschen
- 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
- 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
- 13.2.1 Secrets erstellen
- 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.
- Notes:
- Description based on publisher supplied metadata and other sources.
- PublicationDate: 20201209
- ISBN:
- 9781098128487
- 1098128486
- 9783969100486
- 3969100488
- OCLC:
- 1227391634
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.