UID:
kobvindex_ERBEBC5898584
Umfang:
1 online resource (368 pages)
ISBN:
9783960888284
Anmerkung:
Intro -- Die Autoren -- Impressum -- Inhaltsverzeichnis -- Vorwort -- Einleitung -- 1 Revolution in der Cloud -- 1.1 Die Entstehung der Cloud -- 1.1.1 Zeit einkaufen -- 1.1.2 Infrastructure as a Service -- 1.2 Der Aufstieg von DevOps -- 1.2.1 Keiner versteht DevOps -- 1.2.2 Der Geschäftsvorteil -- 1.2.3 Infrastruktur als Code -- 1.2.4 Gemeinsames Lernen -- 1.3 Das Aufkommen von Containern -- 1.3.1 State of the Art -- 1.3.2 Innerhalb der Box denken -- 1.3.3 Software in Containern verpacken -- 1.3.4 Plug-and-Play-Anwendungen -- 1.4 Das Container-Orchester dirigieren -- 1.5 Kubernetes -- 1.5.1 Von Borg zu Kubernetes -- 1.5.2 Was macht Kubernetes so wertvoll? -- 1.5.3 Wird Kubernetes wieder verschwinden? -- 1.5.4 Kubernetes kann nicht alles -- 1.6 Cloud Native -- 1.7 Die Zukunft von Operations -- 1.7.1 Verteiltes DevOps -- 1.7.2 Manches wird zentralisiert bleiben -- 1.7.3 Developer Productivity Engineering -- 1.7.4 Sie sind die Zukunft -- 1.8 Zusammenfassung -- 2 Erste Schritte mit Kubernetes -- 2.1 Starten Sie Ihren ersten Container -- 2.1.1 Docker Desktop installieren -- 2.1.2 Was ist Docker? -- 2.1.3 Ein Container-Image starten -- 2.2 Die Demo-Anwendung -- 2.2.1 Den Quellcode anschauen -- 2.2.2 Go? -- 2.2.3 Wie die Demo-Anwendung funktioniert -- 2.3 Einen Container bauen -- 2.3.1 Dockerfiles verstehen -- 2.3.2 Minimale Container-Images -- 2.3.3 docker image build ausführen -- 2.3.4 Ihrem Image einen Namen geben -- 2.3.5 Port Forwarding -- 2.4 Container-Registries -- 2.4.1 Sich an der Registry authentifizieren -- 2.4.2 Ihr Image benennen und pushen -- 2.4.3 Ihr Image ausführen -- 2.5 Hallo Kubernetes -- 2.5.1 Die Demo-App starten -- 2.5.2 Wenn der Container nicht startet -- 2.6 Minikube -- 2.7 Zusammenfassung -- 3 Kubernetes-Installationen -- 3.1 Cluster-Architektur -- 3.1.1 Die Steuerungsebene -- 3.1.2 Komponenten auf den Knoten
,
3.1.3 Hochverfügbarkeit -- 3.2 Die Kosten eines selbst gehosteten Kubernetes -- 3.2.1 Es ist mehr, als Sie denken -- 3.2.2 Es geht nicht nur um das initiale Setup -- 3.2.3 Tools nehmen Ihnen nicht die ganze Arbeit ab -- 3.2.4 Kubernetes ist schwer -- 3.2.5 Administrativer Overhead -- 3.2.6 Beginnen Sie mit Managed Services -- 3.3 Managed Kubernetes Services -- 3.3.1 Google Kubernetes Engine (GKE) -- 3.3.2 Cluster Autoscaling -- 3.3.3 Amazon Elastic Container Service for Kubernetes (EKS) -- 3.3.4 Azure Kubernetes Service (AKS) -- 3.3.5 OpenShift -- 3.3.6 IBM Cloud Kubernetes Service -- 3.3.7 Heptio Kubernetes Subscription (HKS) -- 3.4 Turnkey-Kubernetes-Lösungen -- 3.4.1 Stackpoint -- 3.4.2 Containership Kubernetes Engine (CKE) -- 3.5 Kubernetes-Installer -- 3.5.1 kops -- 3.5.2 Kubespray -- 3.5.3 TK8 -- 3.5.4 Kubernetes The Hard Way -- 3.5.5 kubeadm -- 3.5.6 Tarmak -- 3.5.7 Rancher Kubernetes Engine (RKE) -- 3.5.8 Puppet Kubernetes Module -- 3.5.9 Kubeformation -- 3.6 Kaufen oder bauen: Unsere Empfehlungen -- 3.6.1 Run Less Software -- 3.6.2 Nutzen Sie Managed Kubernetes, wenn Sie können -- 3.6.3 Aber was ist mit dem Vendor Lock-In? -- 3.6.4 Nutzen Sie Self-Hosting-Standard-Tools für Kubernetes, wenn Sie müssen -- 3.6.5 Wenn Ihre Auswahl begrenzt ist -- 3.6.6 Bare-Metal und On-Prem -- 3.7 Clusterless Container Services -- 3.7.1 Amazon Fargate -- 3.7.2 Azure Container Instances (ACI) -- 3.8 Zusammenfassung -- 4 Mit Kubernetes-Objekten arbeiten -- 4.1 Deployments -- 4.1.1 Supervising und Scheduling -- 4.1.2 Container neu starten -- 4.1.3 Deployments abfragen -- 4.2 Pods -- 4.3 ReplicaSets -- 4.4 Den gewünschten Status warten -- 4.5 Der Kubernetes-Scheduler -- 4.6 Ressourcen-Manifeste im YAML-Format -- 4.6.1 Ressourcen sind Daten -- 4.6.2 Deployment-Manifeste -- 4.6.3 kubectl apply verwenden -- 4.6.4 Service-Ressourcen
,
4.6.5 Das Cluster mit kubectl abfragen -- 4.6.6 Ressourcen noch leistungsfähiger machen -- 4.7 Helm: Ein Kubernetes-Paketmanager -- 4.7.1 Helm installieren -- 4.7.2 Einen Helm-Chart installieren -- 4.7.3 Charts, Repositories und Releases -- 4.7.4 Helm-Releases anzeigen -- 4.8 Zusammenfassung -- 5 Ressourcen managen -- 5.1 Ressourcen verstehen -- 5.1.1 Ressourcen-Einheiten -- 5.1.2 Ressourcen-Anforderungen -- 5.1.3 Ressourcen-Grenzen -- 5.1.4 Halten Sie Ihre Container klein -- 5.2 Den Lebenszyklus des Containers managen -- 5.2.1 Liveness-Probe -- 5.2.2 Verzögerung und Häufigkeit der Probe -- 5.2.3 Andere Arten von Proben -- 5.2.4 gRPC-Proben -- 5.2.5 Readiness-Proben -- 5.2.6 Dateibasierte Readiness-Proben -- 5.2.7 minReadySeconds -- 5.2.8 Pod Disruption Budgets -- 5.3 Namensräume verwenden -- 5.3.1 Mit Namensräumen arbeiten -- 5.3.2 Welchen Namensraum sollte ich verwenden? -- 5.3.3 Service-Adressen -- 5.3.4 Resource Quotas -- 5.3.5 Standards für Ressourcen-Anforderungen und -Grenzen -- 5.4 Die Kosten von Clustern optimieren -- 5.4.1 Deployments optimieren -- 5.4.2 Pods optimieren -- 5.4.3 Vertical Pod Autoscaler -- 5.4.4 Knoten optimieren -- 5.4.5 Storage optimieren -- 5.4.6 Ungenutzte Ressourcen aufräumen -- 5.4.7 Freie Kapazitäten prüfen -- 5.4.8 Reservierte Instanzen nutzen -- 5.4.9 Präemptive (Spot)-Instanzen verwenden -- 5.4.10 Sorgen Sie für eine ausgeglichene Verteilung Ihrer Workloads -- 5.5 Zusammenfassung -- 6 Cluster betreiben -- 6.1 Sizing und Skalieren des Clusters -- 6.1.1 Kapazitätsplanung -- 6.1.2 Knoten und Instanzen -- 6.1.3 Das Cluster skalieren -- 6.2 Konformitäts-Prüfungen -- 6.2.1 CNCF Certification -- 6.2.2 Konformitäts-Tests mit Sonobuoy -- 6.3 Validierung und Auditing -- 6.3.1 K8Guard -- 6.3.2 Copper -- 6.3.3 kube-bench -- 6.3.4 Kubernetes Audit Logging -- 6.4 Chaos Testing -- 6.4.1 Nur Produktion ist Produktion
,
6.4.2 chaoskube -- 6.4.3 kube-monkey -- 6.4.4 PowerfulSeal -- 6.5 Zusammenfassung -- 7 Power-Tools für Kubernetes -- 7.1 Die Arbeit mit kubectl -- 7.1.1 Shell-Aliasse -- 7.1.2 Kurze Flags verwenden -- 7.1.3 Ressourcen-Typen abkürzen -- 7.1.4 Autovervollständigen von kubectl-Befehlen -- 7.1.5 Hilfe erhalten -- 7.1.6 Hilfe zu Kubernetes-Ressourcen erhalten -- 7.1.7 Detaillertere Ausgaben nutzen -- 7.1.8 Mit JSON-Daten und jq arbeiten -- 7.1.9 Objekte beobachten -- 7.1.10 Objekte beschreiben -- 7.2 Mit Ressourcen arbeiten -- 7.2.1 Imperative kubectl-Befehle -- 7.2.2 Wann Sie keine imperativen Befehle verwenden sollten -- 7.2.3 Ressourcen-Manifeste generieren -- 7.2.4 Ressourcen exportieren -- 7.2.5 Ressourcen diffen -- 7.3 Mit Containern arbeiten -- 7.3.1 Die Logs eines Containers anzeigen -- 7.3.2 Sich mit einem Container verbinden -- 7.3.3 Kubernetes-Ressourcen mit kubespy beobachten -- 7.3.4 Einen Container-Port weiterleiten -- 7.3.5 Befehle in Containern ausführen -- 7.3.6 Container zur Fehlersuche ausführen -- 7.3.7 BusyBox-Befehle verwenden -- 7.3.8 BusyBox zu Ihren Containern hinzufügen -- 7.3.9 Programme auf einem Container installieren -- 7.3.10 Live Debugging mit kubesquash -- 7.4 Kontexte und Namensräume -- 7.4.1 kubectx und kubens -- 7.4.2 kube-ps1 -- 7.5 Shells und Tools für Kubernetes -- 7.5.1 kube-shell -- 7.5.2 Click -- 7.5.3 kubed-sh -- 7.5.4 Stern -- 7.6 Bauen Sie Ihre eigenen Kubernetes-Tools -- 7.7 Zusammenfassung -- 8 Container ausführen -- 8.1 Container und Pods -- 8.1.1 Was ist ein Container? -- 8.1.2 Was gehört in einen Container? -- 8.1.3 Was gehört in einen Pod? -- 8.2 Container-Manifeste -- 8.2.1 Image-Bezeichner -- 8.2.2 Das Tag »latest« -- 8.2.3 Container-Digests -- 8.2.4 Basis-Image-Tags -- 8.2.5 Ports -- 8.2.6 Ressourcen-Anforderungen und -Grenzen -- 8.2.7 Image-Pull-Richtlinie -- 8.2.8 Umgebungsvariablen
,
8.3 Sicherheit von Containern -- 8.3.1 Container als Nicht-Root-Benutzer ausführen -- 8.3.2 Root-Container blockieren -- 8.3.3 Ein Read-Only-Dateisystem nutzen -- 8.3.4 Privilege Escalation deaktivieren -- 8.3.5 Capabilities -- 8.3.6 Pod Security Contexts -- 8.3.7 Pod Security Policies -- 8.3.8 Pod Service-Accounts -- 8.4 Volumes -- 8.4.1 emptyDir-Volumes -- 8.4.2 Persistente Volumes -- 8.5 Neustart-Richtlinien -- 8.6 Image Pull Secrets -- 8.7 Zusammenfassung -- 9 Pods managen -- 9.1 Labels -- 9.1.1 Was sind Labels? -- 9.1.2 Selektoren -- 9.1.3 Komplexere Selektoren -- 9.1.4 Andere Einsatzzwecke für Labels -- 9.1.5 Labels und Anmerkungen -- 9.2 Node Affinities -- 9.2.1 Hard Affinities -- 9.2.2 Soft Affinities -- 9.3 Pod Affinities und Anti-Affinities -- 9.3.1 Pods zusammenhalten -- 9.3.2 Pods auseinanderhalten -- 9.3.3 Soft Anti-Affinities -- 9.3.4 Wann Sie Pod Affinities verwenden -- 9.4 Taints und Tolerations -- 9.5 Pod-Controller -- 9.5.1 DaemonSets -- 9.5.2 StatefulSets -- 9.5.3 Jobs -- 9.5.4 Cronjobs -- 9.5.5 Horizontal Pod Autoscaler -- 9.5.6 PodPresets -- 9.5.7 Operatoren und Custom Resource Definitions (CRDs) -- 9.6 Ingress-Ressourcen -- 9.6.1 Ingress-Regeln -- 9.6.2 TLS Termination mit Ingress -- 9.6.3 Ingress-Controller -- 9.7 Istio -- 9.8 Envoy -- 9.9 Zusammenfassung -- 10 Konfiguration und Secrets -- 10.1 ConfigMaps -- 10.1.1 ConfigMaps erstellen -- 10.1.2 Umgebungsvariablen aus ConfigMaps setzen -- 10.1.3 Die gesamte Umgebung aus einer ConfigMap erstellen -- 10.1.4 Umgebungsvariablen in Argumenten für Befehle einsetzen -- 10.1.5 Konfigurationsdateien aus ConfigMaps erstellen -- 10.1.6 Pods bei einer Konfigurationsänderung aktualisieren -- 10.2 Kubernetes-Secrets -- 10.2.1 Secrets als Umgebungsvariablen verwenden -- 10.2.2 Secrets in Dateien schreiben -- 10.2.3 Secrets lesen -- 10.2.4 Zugriff auf Secrets -- 10.2.5 Encryption at Rest
,
10.2.6 Secrets behalten
Weitere Ausg.:
Print version: Arundel, John Cloud Native DevOps mit Kubernetes Heidelberg : dpunkt.verlag,c2019 ISBN 9783864906985
Schlagwort(e):
Electronic books.
URL:
https://ebookcentral.proquest.com/lib/th-brandenburg/detail.action?docID=5898584