Erzwingen des Neustarts aller Pods in einem Kubernetes Deployment

English Deutsch

In contrast to classical deployment managers like systemd or pm2, Kubernetes does not provide a simple restart my application command.

Es gibt jedoch eine einfache Umgehung: Wenn du etwas in deiner Konfiguration änderst, sogar harmlose Dinge, die keine Wirkung haben, wird Kubernetes deine Pods neu starten.

Consider configuring a rolling update strategy before doing this if you are updating a production application that should have minimal downtime.

In diesem Beispiel gehen wir davon aus, dass du ein StatefulSet hast, das du aktualisieren möchtest, und es heißt elasticsearch-elasticsearch. Stelle sicher, dass du hier den tatsächlichen Namen deines Deployments einträgst.

kubectl-patch-annotation.sh
kubectl patch statefulset/elasticsearch-elasticsearch -p \
  "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"dummy-date\":\"`date +'%s'`\"}}}}}"

Dies wird nur eine dummy-date-Annotation setzen, die keine Wirkung hat.

Du kannst das Update überwachen mit

kubectl-rollout-status.sh
kubectl rollout status statefulset/elasticsearch-elasticsearch

Danke für die ursprüngliche Lösungsidee an pstadler on GitHub.


Check out similar posts by category: Cloud, Kubernetes