
Kubernetes
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Persons
Content
- Cover
- Über den Autor
- Titel
- Impressum
- Widmung
- Inhalt
- Einleitung
- 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 Cloud-natives Ökosystem
- 1.6 Zusammenfassung
- 2 Container erstellen und ausführen
- 2.1 Container-Images
- 2.2 Anwendungs-Images mit Docker bauen
- 2.2.1 Dockerfiles
- 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
- 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 Der Kubernetes-Client
- 3.3.1 Den Cluster-Status prüfen
- 3.3.2 Worker-Knoten in Kubernetes auflisten
- 3.4 Cluster-Komponenten
- 3.4.1 Kubernetes-Proxy
- 3.4.2 Kubernetes-DNS
- 3.4.3 Kubernetes-UI
- 3.5 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 Cluster-Management
- 4.8 Autovervollständigen von Befehlen
- 4.9 Alternative Möglichkeiten zur Kommunikation mit Ihrem Cluster
- 4.10 Zusammenfassung
- 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 Mehr Informationen aus Logs erhalten
- 5.5.2 Befehle in Ihrem Container mit exec ausführen
- 5.5.3 Dateien von und auf Container kopieren
- 5.6 Health-Checks
- 5.6.1 Liveness-Probe
- 5.6.2 Readiness-Probe
- 5.6.3 Startup-Probe
- 5.6.4 Ausgefeiltere Proben-Konfiguration
- 5.6.5 Andere 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.9 Fügen Sie alles zusammen
- 5.10 Zusammenfassung
- 6 Labels und Anmerkungen
- 6.1 Labels
- 6.1.1 Labels anwenden
- 6.1.2 Labels anpassen
- 6.1.3 Label-Selektoren
- 6.1.4 Label-Selektoren in API-Objekten
- 6.1.5 Labels in der Architektur von Kubernetes
- 6.2 Anmerkungen
- 6.3 Aufräumen
- 6.4 Zusammenfassung
- 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 Load-Balancer-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 Mit anderen Umgebungen verbinden
- 7.6.1 Mit einer Ressource außerhalb eines Clusters verbinden
- 7.6.2 Externe Ressourcen mit Services innerhalb eines Clusters verbinden
- 7.7 Aufräumen
- 7.8 Zusammenfassung
- 8 HTTP Load Balancing mit Ingress
- 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
- 8.3.2 Hostnamen verwenden
- 8.3.3 Pfade verwenden
- 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
- 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
- 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
- 9.8 ReplicaSets löschen
- 9.9 Zusammenfassung
- 10 Deployments
- 10.1 Ihr erstes Deployment
- 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
- 10.5.3 Rollouts verlangsamen, um die Service-Qualität sicherzustellen
- 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
- 11.3 DaemonSets auf bestimmte Knoten beschränken
- 11.3.1 Knoten mit Labels versehen
- 11.3.2 Knoten-Selektoren
- 11.4 Ein DaemonSet aktualisieren
- 11.5 Ein DaemonSet löschen
- 11.6 Zusammenfassung
- 12 Jobs
- 12.1 Das Job-Objekt
- 12.2 Job-Muster
- 12.2.1 Einmalig
- 12.2.2 Parallelism
- 12.2.3 Work-Queues
- 12.3 CronJobs
- 12.4 Zusammenfassung
- 13 ConfigMaps und Secrets
- 13.1 ConfigMaps
- 13.1.1 ConfigMaps erstellen
- 13.1.2 Eine ConfigMap verwenden
- 13.2 Secrets
- 13.2.1 Secrets erstellen
- 13.2.2 Secrets konsumieren
- 13.2.3 Private Docker-Registries
- 13.3 Namensbeschränkungen
- 13.4 ConfigMaps und Secrets managen
- 13.4.1 Ausgabe
- 13.4.2 Erstellen
- 13.4.3 Aktualisieren
- 13.5 Zusammenfassung
- 14 Role-Based Access Control für Kubernetes
- 14.1 Role-Based Access Control
- 14.1.1 Identität in Kubernetes
- 14.1.2 Rollen und Role Bindings verstehen
- 14.1.3 Rollen und Role Bindings in Kubernetes
- 14.2 Techniken zur Arbeit mit RBAC
- 14.2.1 Die Autorisierung mit can-i testen
- 14.2.2 RBAC in der Versionsverwaltung managen
- 14.3 Fortgeschrittene Techniken
- 14.3.1 Cluster-Rollen aggregieren
- 14.3.2 Gruppen für Bindings verwenden
- 14.4 Zusammenfassung
- 15 Service Meshes
- 15.1 Verschlüsselung und Authentifizierung mit Mutual TLS
- 15.2 Traffic Shaping
- 15.3 Introspection
- 15.4 Brauchen Sie wirklich ein Service Mesh?
- 15.5 Introspection einer Service-Mesh-Implementierung
- 15.6 Service-Mesh-Landschaft
- 15.7 Zusammenfassung
- 16 Storage-Lösungen in Kubernetes integrieren
- 16.1 Externe Services importieren
- 16.1.1 Services ohne Selektoren
- 16.1.2 Grenzen für externe Services: Health-Checking
- 16.2 Zuverlässige Singletons ausführen
- 16.2.1 Ein MySQL-Singleton ausführen
- 16.2.2 Dynamisches Volume-Provisioning
- 16.3 Kubernetes-eigenes Storage mit StatefulSets
- 16.3.1 Eigenschaften von StatefulSets
- 16.3.2 Manuell replizierte MongoDB mit StatefulSets
- 16.3.3 Das MongoDB-Cluster automatisch erstellen
- 16.3.4 Persistente Volumes und StatefulSets
- 16.3.5 Zum Abschluss: Readiness-Proben
- 16.4 Zusammenfassung
- 17 Kubernetes erweitern
- 17.1 Was bedeutet das Erweitern von Kubernetes?
- 17.2 Erweiterungspunkte
- 17.3 Patterns für Custom Resources
- 17.3.1 Just Data
- 17.3.2 Compiler
- 17.3.3 Operator
- 17.3.4 Der Einstieg
- 17.4 Zusammenfassung
- 18 Kubernetes über Programmiersprachen steuern
- 18.1 Die Kubernetes-API aus Sicht eines Clients
- 18.1.1 OpenAPI und generierte Client-Bibliotheken
- 18.1.2 Aber was ist mit kubectl x?
- 18.2 Mit der Kubernetes-API programmieren
- 18.2.1 Die Client-Bibliotheken installieren
- 18.2.2 Gegen die Kubernetes-API authentifizieren
- 18.2.3 Zugriff auf die Kubernetes-API
- 18.2.4 Führen wir die Einzelteile zusammen: Pods in Python, Java und .NET auflisten und erzeugen
- 18.2.5 Objekte erstellen und patchen
- 18.2.6 Kubernetes-APIs auf Änderungen belauschen
- 18.2.7 Mit Pods interagieren
- 18.3 Zusammenfassung
- 19 Anwendungen in Kubernetes absichern
- 19.1 SecurityContext verstehen
- 19.1.1 Herausforderungen beim SecurityContext
- 19.2 Pod Security
- 19.2.1 Was ist Pod Security
- 19.2.2 Pod-Security-Standards anwenden
- 19.3 Managen von Service-Accounts
- 19.4 Role-Based Access Control
- 19.5 RuntimeClass
- 19.6 NetworkPolicy
- 19.7 Service Mesh
- 19.8 Security-Benchmark-Tools
- 19.9 Image-Sicherheit
- 19.10 Zusammenfassung
- 20 Policy und Governance für Kubernetes-Cluster
- 20.1 Warum Policy und Governance wichtig sind
- 20.2 Genehmigungsablauf
- 20.3 Policy und Governance mit Gatekeeper
- 20.3.1 Was ist der Open Policy Agent?
- 20.3.2 Gatekeeper installieren
- 20.3.3 Policies konfigurieren
- 20.3.4 Constraint Templates verstehen
- 20.3.5 Constraints erstellen
- 20.3.6 Audit
- 20.3.7 Mutation
- 20.3.8 Datenreplikation
- 20.3.9 Metriken
- 20.3.10 Policy-Bibliothek
- 20.4 Zusammenfassung
- 21 Anwendungen auf mehrere Cluster deployen
- 21.1 Bevor Sie überhaupt anfangen
- 21.2 Ganz oben mit einem Load-Balancing-Ansatz beginnen
- 21.3 Anwendungen für mehrere Cluster bauen
- 21.3.1 Replizierte Silos: Das einfachste regionsübergreifende Modell
- 21.3.2 Sharding: Regionale Daten
- 21.3.3 Mehr Flexibilität: Microservice Routing
- 21.4 Zusammenfassung
- 22 Organisieren Sie Ihre Anwendung
- 22.1 Leitprinzipien
- 22.1.1 Dateisysteme als Source of Truth
- 22.1.2 Die Rolle des Code-Reviews
- 22.1.3 Feature Gates
- 22.2 Ihre Anwendung in der Versionsverwaltung managen
- 22.2.1 Struktur im Dateisystem
- 22.2.2 Regelmäßige Versionen managen
- 22.3 Ihre Anwendung für Entwicklung, Testen und Deployment strukturieren
- 22.3.1 Ziele
- 22.3.2 Verlauf eines Releases
- 22.4 Ihre Anwendung durch Templates parametrisieren
- 22.4.1 Mit Helm und Templates parametrisieren
- 22.4.2 Dateisystem-Layout zur Parametrisierung
- 22.5 Ihre Anwendung weltweit deployen
- 22.5.1 Architekturen für ein weltweites Deployment
- 22.5.2 Ein weltweites Deployment implementieren
- 22.5.3 Dashboards und Monitoring für weltweite Deployments
- 22.6 Zusammenfassung
- A Ein eigenes Kubernetes-Cluster bauen
- A.1 Teileliste
- A.2 Images flashen
- A.3 Erstes Booten: Master
- A.3.1 Das Netzwerk einrichten
- A.3.2 Eine Container Runtime installieren
- A.3.3 Kubernetes installieren
- A.3.4 Das Cluster aufsetzen
- A.4 Zusammenfassung
- Fußnoten
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.