Einführung
In dieser Herausforderung stellen Sie Ihre Kubernetes-Kenntnisse als Junior DevOps Engineer in einem Tech-Startup unter Beweis. Ihre Aufgabe ist es, eine Webanwendung auf Basis von NGINX zu aktualisieren und dabei sicherzustellen, dass der Dienst ohne Unterbrechungen verfügbar bleibt. Die Aufgaben umfassen die Aktualisierung eines Kubernetes-Deployments auf eine neuere Image-Version sowie die Überprüfung des erfolgreichen Rolling Updates.
NGINX-Deployment aktualisieren
Als Junior DevOps Engineer besteht Ihre Aufgabe darin, das bestehende Deployment so zu aktualisieren, dass der laufende Betrieb nicht beeinträchtigt wird.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass die Umgebung bereit ist:
minikube start
kubectl apply -f ~/project/k8s-manifests/nginx-deployment.yaml
Überprüfen Sie den Status des Deployments:
kubectl get deployments
Aufgaben
- Aktualisieren Sie das Deployment
web-app, sodass das Imagenginx:1.24.0-alpineverwendet wird. - Verifizieren Sie, dass die Aktualisierung mittels Rolling Update durchgeführt wurde, um eine Null-Ausfallzeit (Zero Downtime) zu gewährleisten.
Anforderungen
- Verwenden Sie
kubectl-Befehle für die Aktualisierung. - Bestätigen Sie, dass das Deployment während des Updates durchgehend funktionsfähig bleibt.
- Nutzen Sie
kubectl rollout status, um den Fortschritt der Aktualisierung zu überwachen. - Überprüfen Sie die Images der Pods, um die neue Version zu bestätigen.
Hinweise
- Verwenden Sie
kubectl edit deployment web-appoderkubectl set image, um das Image zu ändern. - Überwachen Sie den Rollout-Status mit
kubectl rollout status. - Validieren Sie die laufenden Pods und deren Container-Images mit
kubectl get pods -o jsonpath.
Zusammenfassung
In dieser Herausforderung haben Sie Ihre Kubernetes-Kompetenz bewiesen, indem Sie ein NGINX-Webanwendungs-Deployment auf eine neuere Image-Version aktualisiert haben. Sie haben sichergestellt, dass während des Prozesses keine Ausfallzeiten entstanden sind, und den Erfolg des Rolling Updates verifiziert. Diese Übung verdeutlicht, wie wichtig die Aufrechterhaltung der Hochverfügbarkeit bei Aktualisierungen in einer Kubernetes-Umgebung ist.


