Einführung
Kubernetes ist ein Open-Source-System, das für die Orchestrierung, Skalierung und Bereitstellung containerisierter Anwendungen entwickelt wurde. Wenn Sie schon einmal mit Kubernetes gearbeitet haben, wissen Sie, wie nützlich es für die Verwaltung von Containern ist.
Sie werden auch wissen, dass Container nicht immer so laufen, wie sie sollen. Wenn ein Fehler auftritt, müssen Sie das Problem schnell und einfach beheben.
In dieser Anleitung wird erklärt, wie Pods in Kubernetes neu gestartet werden.
Voraussetzungen
- Zugriff auf ein Terminalfenster/Befehlszeile
- Ein Kubernetes-Cluster
- Das kubectl-Befehlszeilentool von Kubernetes
Kubernetes-Pods neu starten
Angenommen, einer der Pods in Ihrem Container meldet einen Fehler. Abhängig von der Neustartrichtlinie versucht Kubernetes möglicherweise, den Pod automatisch neu zu starten, damit er wieder funktioniert. Das behebt das Problem jedoch nicht immer.
Wenn Kubernetes das Problem nicht selbst beheben kann und Sie die Fehlerquelle nicht finden können, ist ein Neustart des Pods die schnellste Möglichkeit, Ihre App wieder zum Laufen zu bringen.
Methode 1:Rolling Restart
Ab Update 1.15 können Sie mit Kubernetes einen fortlaufenden Neustart Ihrer Bereitstellung durchführen. Als neue Ergänzung zu Kubernetes ist dies die schnellste Neustartmethode.
kubectl rollout restart deployment [deployment_name]
Der oben genannte Befehl führt ein schrittweises Herunterfahren durch und startet jeden Container in Ihrer Bereitstellung neu. Ihre App ist weiterhin verfügbar, da die meisten Container weiterhin ausgeführt werden.
Methode 2:Verwenden von Umgebungsvariablen
Eine andere Methode besteht darin, eine Umgebungsvariable festzulegen oder zu ändern, um einen Neustart der Pods zu erzwingen und mit den von Ihnen vorgenommenen Änderungen zu synchronisieren.
Beispielsweise können Sie das Bereitstellungsdatum des Containers ändern:
kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"
Im obigen Beispiel ist der Befehl set env
Richtet eine Änderung der Umgebungsvariablen deployment [deployment_name]
ein wählt Ihre Bereitstellung aus und DEPLOY_DATE="$(date)"
ändert das Bereitstellungsdatum und erzwingt den Pod-Neustart.
Methode 3:Skalierung der Replikatanzahl
Schließlich können Sie die scale
verwenden Befehl, um zu ändern, wie viele Replikate des fehlerhaften Pods vorhanden sind. Wenn Sie diesen Betrag auf Null setzen, wird der Pod im Wesentlichen ausgeschaltet:
kubectl scale deployment [deployment_name] --replicas=0
Um den Pod neu zu starten, verwenden Sie denselben Befehl, um die Anzahl der Replikate auf einen beliebigen Wert größer als null festzulegen:
kubectl scale deployment [deployment_name] --replicas=1
Wenn Sie die Anzahl der Replikate auf null setzen, zerstört Kubernetes die nicht mehr benötigten Replikate.
Sobald Sie eine Zahl größer als Null festlegen, erstellt Kubernetes neue Replikate. Die neuen Replikate haben andere Namen als die alten. Sie können den Befehl kubectl get pods
verwenden um den Status der Pods zu überprüfen und die neuen Namen zu sehen.