Nach der Behandlung von Konfiguration und Persistenz geht es nun um den Betrieb von Kubernetes-Anwendungen. In diesem Teil betrachten wir die Themen Skalierung, Rolling Updates und Sicherheit – zentrale Faktoren für hochverfügbare und geschützte Anwendungen.
Skalierung in Kubernetes
Kubernetes bietet mehrere Möglichkeiten, Anwendungen horizontal zu skalieren:
- Manuelle Skalierung:
Über den Befehlkubectl scale deployment webserver --replicas=5
lässt sich die Anzahl der Pods jederzeit anpassen. - Horizontale Pod-Autoskalierung (HPA):
Automatische Skalierung basierend auf Metriken wie CPU- oder Speicherauslastung.
Beispiel für eine HPA-Ressource:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: webserver-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: webserver-deployment minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50
Rolling Updates und Canary Deployments
Kubernetes ermöglicht unterbrechungsfreie Updates von Anwendungen:
- Rolling Updates: Neue Pods werden schrittweise gestartet, alte Pods werden erst nach erfolgreichem Start entfernt.
- Canary Deployments: Neue Versionen werden zunächst nur für einen Teil der Nutzer ausgerollt, um Risiken zu minimieren.
Das Deployment-Objekt in Kubernetes unterstützt Rolling Updates standardmäßig.
Sicherheit in Kubernetes
Für den sicheren Betrieb von Anwendungen bietet Kubernetes mehrere Mechanismen:
- Namespaces:
Logische Trennung von Ressourcen für verschiedene Teams oder Anwendungen. - RBAC (Role-Based Access Control):
Präzise Steuerung, wer welche Ressourcen verwalten darf. - Network Policies:
Regeln für den Netzwerkverkehr zwischen Pods, ähnlich wie Firewalls. - Pod Security Standards:
Empfehlungen für sichere Konfigurationen, z. B. keine Root-Rechte in Containern.
Best Practices für Sicherheit und Betrieb
- Trennung von Umgebungen: Development, Staging und Produktion klar abgrenzen.
- Regelmäßige Updates: Kubernetes-Cluster und Container-Images aktuell halten.
- Least Privilege: Minimale Berechtigungen für Benutzer und Anwendungen.
- Monitoring und Logging: Tools wie Prometheus, Grafana und ELK-Stack nutzen.
Schreibe einen Kommentar