Kubectl Drain

Kubectl Drain
Container sind kurzlebig, wie jeder, der mit ihnen gearbeitet hat, weiß. Nicht nur Behälter und Schoten, sondern auch Knoten können durch Kubernetes ersetzt werden. Kubernetes -Knoten sind VMs, Server und andere rechenintensive Entitäten, in denen Pods und Container ausführen. Die Technologie, mit der Benutzer alle Container nahtlos von einem Knoten auf einen anderen verschieben können. Es gibt eine Vielzahl von Anwendungen wie die Aufrechterhaltung des Servers, K8S Cluster Auto Skaling, bei denen Knoten dynamisch hinzugefügt und zurückgezogen werden. Präventible oder Spot-Instanzen sind Fälle, die jederzeit gestoppt werden können.

Kubernetes kann Knotenausfälle erkennen und Pods automatisch an anderen Knoten verschieben. Das einzige Problem ist die Zeit, die der Knoten benötigt, um nach unten zu gehen, und der Pod, um verschoben zu werden. Mal sehen, wie Sie einen Knoten in Kubernetes abtropfen können. Aber zuerst stellen Sie sicher, dass Sie Kubectl auf Ihrem System installiert haben. Um die Befehle auszuführen, müssen Sie auch den Minikube -Cluster installieren und dann das Terminalfenster starten. Sie können das Minikube verwenden, indem Sie dem folgenden Befehl folgen.

Stellen Sie außerdem sicher, dass Ihr Kubernetes -Server Version 1 sein muss.5 oder neuer. Geben Sie die "Kubectl -Version" ein, wenn Sie die Version überprüfen möchten. Sie müssen bestimmte Anforderungen erfüllen, um diese Aufgabe erfolgreich zu erledigen. Sie benötigen nicht, dass Ihre Anwendungen während des Knotenablaufs verfügbar sind, oder Sie müssen nicht in hohem Maße verfügbar sein. Sie haben etwas über das PoddisruptionBudget -Konzept erfahren und PodDisruptionBudgets für die Apps eingerichtet, die sie erfordern.

Konfigurieren Sie bei Bedarf ein Budget für Störungen

Um sicherzustellen, dass Ihre Workloads während der Wartung verfügbar sind. Konfigurieren Sie zuerst einen PodDisruptionBudgets und folgen Sie diesen Ratschlägen, wenn die Verfügbarkeit für Anwendungen, die möglicherweise auf den von Ihnen entleeren Sie den Knoten ausgeführt werden können, von entscheidender Bedeutung ist.

Die Verwendung von Kubectl -Abfluss zum Entfernen/Löschen eines Knotens

Sie können Kubectl Drain verwenden, um alle Ihre Schoten zu räumen, bevor Sie die Wartung auf einem Knoten sicheren Räumungen durchführen.

Kubectl Drain ignoriert schließlich einige Pods auf dem Knoten, die nicht standardmäßig zerstört werden können. Es ist daher sicher, den Knoten durch Ausschalten seiner physischen Maschine zu schalten oder, wenn er auf einer Cloud -Plattform ausgeführt wird, seine virtuelle Maschine deinstallieren. Identifizieren Sie zunächst den Knoten, den Sie mit seinem Namen abtropfen möchten. Der folgende Befehl zeigt eine Liste aller in Ihrem Cluster genannten Knoten an.

Informieren Sie Kubernetes als nächstes, dass der Knoten entwässert werden sollte:

Nachdem der Knoten zurückgegeben hat (und ohne einen Fehler zu verursachen), können Sie ihn ausschalten (oder, wenn sie auf einer Cloud -Plattform, die virtuelle Maschine löschen, die den Knoten unterstützt). Wenn Sie einen Knoten im Cluster für die Wartung lassen, verwenden Sie den folgenden Befehl, um Kubernetes mitzuteilen, dass er neue Pods auf dem Knoten neu planen kann.

Gleichzeitig zahlreiche Knoten entleeren

Es sollte nur ein Knoten gleichzeitig die Kubectl -Abflussanweisung empfangen. Sie können jedoch viele kubectl -Abflussanweisungen gleichzeitig in verschiedenen Klemmen oder im Hintergrund für verschiedene Knoten ausführen. Auch wenn gleichzeitig zahlreiche Abflussanweisungen funktionieren, muss PodDisruptionBudget beobachtet werden.

Wenn Sie ein staatlich mit 3 Replikaten und einen PoddisruptionBudget von 2 haben, entfernen Kubectl Drain nur eine Pod, wenn alle diese Schoten fertig sind. Wenn Sie gleichzeitig mehrere Drain -Befehle ausführen, ehren Kubernetes den PodDisruptionBudget und garantieren, dass nur ein Abfluss ausgeführt wird.

Räumung in Kubernetes

Sie können die Räumungs -API verwenden, um die Räumungen programmgesteuert zu initiieren, wenn Sie nicht bereit sind, Kubectl Drain zu verwenden (z. B. um die Ausführung eines externen Befehls zu vermeiden oder eine bessere Kontrolle während des gesamten Pod -Räumungsprozesses zu haben).

Sie müssen zuerst mit Kubernetes -Sprachkunden vertraut sein, um die API zu verwenden. Die Räumungs-Subresource einer POD kann als Löschmaßnahme auf der POD angesehen werden, die von der Richtlinie kontrolliert ist. Um eine Räumung zu versuchen, veröffentlichen Sie einen Versuchsversuch (oder versuchen, eine Räumung genauer aufzubauen).

Räumungen festgefahren

Wenn Sie nicht handeln, kann eine Bewerbung gebrochen werden, und die Räumungs -API wird immer 429 oder 500 zurückgeben. Ähnliche Effekte sind auch zu erkennen, ob der letzte zu vertriebene Pod eine langjährige Gnade hat.

In dieser Situation gibt es zwei Optionen: Abbrechen oder Pause des automatischen Betriebs. Starten Sie die Automatisierung neu, nachdem Sie die Ursache der blockierten Anwendung ermittelt haben. Anstatt die Räumungs -API zu benutzen.

Abschluss

In diesem Artikel haben wir über die Verwendung von Kubectl Drain gesprochen. Verschiedene Befehle werden erläutert, um die Methode des Abflusses in Kubernetes zu verstehen.