Container Basics
• Vergleich Container vs. VMs
• Docker Alternativen
• Funktionale Übersicht
• Docker Registry, Daemon und CLI
• Docker Installation
• Images pullen und verwalten
• Container Instanzen starten und verwalten
• Applikationen im Container starten
• Eigene Images erstellen: Dockerfile und Build-Prozess
• Troubleshooting/Debugging und Best Practices
Einführung Container Cluster
• Orchestrierung
• Konzeptionelle Betrachtungen
• Überblick: Designansätze, Konzepte und Orchestrierungs-Tools für Container Cluster
• Monitoring-/HA-Mechanismen
• Service Discovery und Key/Value Stores
Container Cluster mit Kubernetes
• Überblick Kubernetes (k8s) Architektur: Master + Worker Nodes, etcd als Key-Value-Store
• Cluster Networking mit Calico, Flannel, Weave und weiteren
• API-Server, Controller Manager, Scheduler, Kubelets
• Setup eines Multi-Node K8s-Clusters mit kubeadm
• Label und Selektoren
Installation und Konfiguration
• Lokales Cluster über minikube
• Verwendung des Cluster Bootstrappers kubeadm
• Ausblick: Cluster-API
Cluster-Zugriff
• Management über kubectl
• Verwendung des API-Endpunktes in eigenen Applikationen
• Grafische Verwaltung über Kubernetes Dashboard
Sicherheit
• RBAC: User- und Systemrollen
• Authentifizierung und Autorisierung
• RoleBindings
• Contexts
• Zugriffslimitierungen
• NetworkPolicies
Kubernetes Ressourcen
• API-Schemata/Versionen und K8s Resourcen/Workloads
• Container, Pods, ReplicaSets, Deployments, DaemonSets, ConfigMaps, Namespaces,
Services, Ingresses und mehr
• Eigene Ressourcen: Custom Resource Definitions
Skalierbarkeit
• Scale Up and Scale Down
• Horizontal Pod Autoscaler
• Vertical Pod Autoscaler
• Skalierung des gesamten Clusters über den Clusters-Autoscaler
Persistente Daten
• Stateless oder Stateful?
• Persistente und dynamische Storage-Volumes, Bereitstellung über Volume Claims, Storage
Classes
• Container Storage Interface (CSI)
• Betrachtung der gängigen CSI Provider: EBS, GCE PD, CephFS, GlusterFS, Portworx und
mehr
Externer Zugriff
• Ingress für Web-Traffic verwenden
• ingress-nginx und Alternativen
• Verwendung von Annotations zur Konfiguration
• cert-manager: Management von Let´s Encrypt Zertifikaten
• TCP/UDP Zugriffe auf das Cluster
• Kong-Ingress: API-Gateway für eine Microservice oder FaaS Architektur
Applikations-Workflows
• Rolling Updates / Rollbacks, Revisions-History
• Continous Integration / CI
• Continous Delivery / CD
• GitLab Kubernetes Runner und GitLab Pipeline Integrationen
• Arbeiten mit der GitLab Docker-Registry
Paketmanager Helm
• Einführung in Helm
• Tiller / Helm CLI
• Helm Charts verwenden
• Eigene Helm-Charts erstellen und deployen
Logging, Monitoring und Troubleshooting
• Node / Pod Metrics: Auswertung und Visualisierung
• Prometheus Monitoring und Logging
• Visuelle Darstellungen mit Grafana
• Troubleshooting Best-Practices
Kubernetes in der Cloud
• Managed Kubernetes über AWS EKS, Google GKE und weitere Alternativen
• kops auf AWS
• Authentifizierung über kube2iam
• Betrachtung der Kosten, Vor- und Nachteile
Optimierung und laufender Betrieb
• Strategien zur Optimierung der Cluster-Ressourcen
• Resource Requests und Limits korrekt setzen
• Auslastung der Cluster Nodes optimieren
• Verwendung von Spot-Instances auf AWS
Backup und Recovery
• Backupstrategien
• Heptio Velero (ehemals Ark): Backups und Desaster Recovery
• Cluster Migrationen