kubectl - wie man den pod neu startet

kubectl - wie man den pod neu startet

Ein Pod kann auch einen oder mehrere Container haben, von denen einer der Anwendungscontainer ist, und die anderen sind der Init -Container, der nach Abschluss eines Jobs anhält oder der Anwendungsbehälter bereit ist, seine Funktion auszuführen, und der Sidecar -Container, der, welche ist am primären Anwendungsbehälter angebracht. Ein Container oder ein Pod wird aufgrund eines Anwendungsfehlers nicht immer abgehalten. In solchen Szenarien müssen Sie Ihren Kubernetes -Pod explizit neu starten. In diesem Leitfaden untersuchen Sie, wie Sie Pods in einem Einsatz zwingen können, auf verschiedene Arten neu zu starten.

Voraussetzungen

Um den Pod mit Kubectl neu zu starten, stellen Sie sicher, dass Sie das Kubectl -Werkzeug zusammen mit dem Minikube -Cluster installiert haben. Andernfalls können Sie den vorgeschriebenen Artikel nicht implementieren.

Hinweis: Wir implementieren diesen Leitfaden zu Ubuntu 20.04 Linux -System. Das Betriebssystem kann jedoch je nach Ihren Anforderungen variieren.

Methoden zum Neustart von Pods mit Kubectl

Um Pods mit Kubectl neu zu starten.

$ minikube Start

Dieser Vorgang dauert einige Zeit, sodass Sie einige Zeit warten müssen, um den Prozess effektiv abzuschließen. Jetzt sind wir bereit, die Pods mit dem befohlenen Befehl aufzulisten.

$ kubectl bekommen Pods

Sie können das vorerst überprüfen; Im System ist nur ein Pod vorhanden. Jetzt werden wir eine Bereitstellung erstellen. Zunächst müssen wir also eine Konfigurationsdatei für die Bereitstellung erstellen. Erstellen Sie die Datei im Home -Verzeichnis Ihres Systems durch den befohlenen Befehl.

$ touch -Bereitstellung.Yaml

Die Datei wird in Ihrem Heimverzeichnis erstellt. Öffnen Sie es und schreiben.

Erstellen Sie nun die Bereitstellung mit dem folgenden befestigten Kubectl -Befehl.

$ kubectl erstellen -f -Bereitstellung.Yaml

Die Bereitstellung wird erfolgreich erstellt, wie im angehängten Bild gezeigt. Nehmen Sie jetzt erneut alle Schoten Ihres Systems mit der Verwendung der Systeme ein AFIXED KUBECTL Befehl.

$ kubectl bekommen Pods

Schauen Sie sich an, dass jetzt 2 Pods ausgeführt werden, wie im obigen Screenshot angezeigt.

Methode 1:

Ein rollierender Neustart wird verwendet, um jede Pod in der Reihenfolge der Bereitstellung neu zu starten. Dies ist die am meisten empfohlene Strategie, da sie keine Servicepause verursacht. Schreiben Sie den folgenden Befehl in das Terminal.

$ kubectl rollout restart -Bereitstellung

Ersetzen Sie das entsprechend Ihrem Bedarf.

Der oben erwähnte Befehl wird es neu starten. Ihre App ist zugänglich, da die meisten Container funktionieren.

Methode 2:

Die zweite Methode besteht darin, Pods zum Neustart und Synchronisieren mit den Modifikationen zu zwingen, die Sie durch Einstellen oder Ändern einer Umgebungsvariablen vorgenommen haben.

$ kubectl Set Env -Bereitstellung DEPOLY_DATE = "$ (Datum)"

Ersetzen Sie das entsprechend Ihrem Bedarf.

Methode 3:

Die Reduzierung der Anzahl der Einsatzkopien auf Null und die Rückverdauer auf den entsprechenden Zustand ist eine weitere Methode zum Neustarten von Pods. Dies zwingt alle aktuellen Schoten zum Einstellen und Beenden, gefolgt von der Planung von frischen Schoten an ihrer Stelle. Die Begrenzung der Anzahl der Kopien auf 0 führt zu einem Ausfall. Daher wird ein rollender Neustart empfohlen. Verwenden Sie den folgenden angehängten Befehl, um die Repliken einer Bereitstellung auf 0 festzulegen.

$ kubectl scale -Bereitstellung --Replikate = 0

Ersetzen Sie das entsprechend Ihrem Bedarf.

Die Befehlsskala gibt die Anzahl der Repliken an, die für jede Pod aktiv sein sollten. Es schaltet den Prozess effektiv ab, wenn Benutzer ihn auf Null setzen. Um den genannten Pod erneut zu starten, werden wir ihren Replik -Wert mehr als 0 festlegen.

$ kubectl scale -Bereitstellung --Repliken = 1

Ersetze das <Einsatzname> je nach Bedarf.

Abschluss

Kubernetes ist eine effektive Container -Orchestrierungsplattform. Es treten jedoch Schwierigkeiten auf, wie es mit allen Systemen tut. Wenn Sie Ihre Pod neu starten, wird das grundlegende Problem, das dazu führte. Ich hoffe.