Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Entfernen von Kubernetes-Komponenten von Knoten

In diesem Abschnitt wird beschrieben, wie man einen Knoten von einem von Rancher gestarteten Kubernetes-Cluster trennt und alle Kubernetes-Komponenten vom Knoten entfernt. Dieser Prozess ermöglicht es Ihnen, den Knoten für andere Zwecke zu verwenden.

Wenn Sie Rancher verwenden, um Kubernetes auf neuen Knoten in einem Infrastruktur-Anbieter zu installieren, werden Ressourcen (Container/virtuelle Netzwerkschnittstellen) und Konfigurationselemente (Zertifikate/Konfigurationsdateien) erstellt.

Beim Entfernen von Knoten aus Ihrem von Rancher gestarteten Kubernetes-Cluster (vorausgesetzt, sie befinden sich im Active Zustand) werden diese Ressourcen automatisch bereinigt, und die einzige erforderliche Maßnahme besteht darin, den Knoten neu zu starten. Wenn ein Knoten unerreichbar geworden ist und der automatische Bereinigungsprozess nicht verwendet werden kann, beschreiben wir die Schritte, die ausgeführt werden müssen, bevor der Knoten wieder zu einem Cluster hinzugefügt werden kann.

Was wird entfernt?

Beim Bereinigen von Knoten, die mit Rancher bereitgestellt wurden, werden die folgenden Komponenten basierend auf dem Typ des Knotens, den Sie entfernen, gelöscht.

Entfernte Komponente Von einem Infrastruktur-Anbieter gehostete Knoten Benutzerdefinierte Knoten Gehosteter Cluster Angemeldete Knoten

Der Rancher-Bereitstellungs-Namespace (cattle-system standardmäßig)

serviceAccount, clusterRoles und clusterRoleBindings, die von Rancher gekennzeichnet sind

Labels, Annotationen und Finalizer

Rancher-Implementierung

Maschinen, Cluster, Projekte und benutzerdefinierte Ressourcenbeschreibungen (CRDs)

Alle Ressourcen, die unter der management.cattle.io API-Gruppe erstellt wurden

Alle CRDs, die von Rancher v2.x erstellt wurden

Einen Knoten über die Rancher-Benutzeroberfläche aus einem Cluster entfernen

Wenn sich der Knoten im Zustand Active befindet, wird das Entfernen des Knotens aus einem Cluster einen Prozess auslösen, um den Knoten zu bereinigen. Bitte starten Sie den Knoten neu, nachdem der automatische Bereinigungsprozess abgeschlossen ist, um sicherzustellen, dass alle nicht persistenten Daten ordnungsgemäß entfernt werden.

Um einen Knoten neu zu starten:

# using reboot
$ sudo reboot

# using shutdown
$ sudo shutdown -r now

Rancher-Komponenten manuell aus einem Cluster entfernen

Wenn ein Knoten nicht erreichbar ist und aus dem Cluster entfernt wird, kann der automatische Bereinigungsprozess nicht ausgelöst werden, da der Knoten nicht erreichbar ist. Bitte folgen Sie den untenstehenden Schritten, um die Rancher-Komponenten manuell zu entfernen.

Die unten aufgeführten Befehle entfernen Daten vom Knoten. Stellen Sie sicher, dass Sie eine Sicherung der Dateien erstellt haben, die Sie behalten möchten, bevor Sie einen der Befehle ausführen, da Daten verloren gehen.

Rancher-Komponenten aus registrierten Clustern entfernen

Für registrierte Cluster ist der Prozess zum Entfernen von Rancher etwas anders. Sie haben die Möglichkeit, den Cluster einfach in der Rancher-Benutzeroberfläche zu löschen, oder Sie können ein Skript ausführen, das die Rancher-Komponenten von den Knoten entfernt. Beide Optionen führen zu denselben Löschvorgängen.

Nachdem der registrierte Cluster von Rancher getrennt wurde, bleiben die Arbeitslasten des Clusters unbeeinflusst, und Sie können auf den Cluster mit denselben Methoden zugreifen, die Sie vor der Registrierung des Clusters in Rancher verwendet haben.

  • Über die Benutzeroberfläche / API

  • Durch Skript

Dieser Prozess entfernt Daten aus Ihrem Cluster. Stellen Sie sicher, dass Sie eine Sicherung der Dateien erstellt haben, die Sie behalten möchten, bevor Sie den Befehl ausführen, da Daten verloren gehen.

Nachdem Sie das Entfernen eines registrierten Clusters über die Rancher-Benutzeroberfläche (oder API) initiiert haben, treten die folgenden Ereignisse ein.

  1. Rancher erstellt ein serviceAccount, das es verwendet, um die Rancher-Komponenten aus dem Cluster zu entfernen. Dieses Konto hat die clusterRole und clusterRoleBinding Berechtigungen zugewiesen, die erforderlich sind, um die Rancher-Komponenten zu entfernen.

  2. Mit dem serviceAccount plant und führt Rancher einen job aus, der die Rancher-Komponenten vom Cluster entfernt. Dieser Job verweist auch auf die serviceAccount und deren Rollen als Abhängigkeiten, sodass der Job sie vor seinem Abschluss löscht.

  3. Rancher wird aus dem Cluster entfernt. Der Cluster bleibt jedoch bestehen und führt die native Version von Kubernetes aus.

Ergebnis: Alle für registrierte Cluster in Was wird entfernt? aufgeführten Komponenten werden gelöscht.

Anstatt die registrierten Clusterknoten über die Rancher-Benutzeroberfläche zu bereinigen, können Sie stattdessen ein Skript ausführen.

Voraussetzung

Installieren Sie kubectl.

  1. Öffnen Sie einen Webbrowser, navigieren Sie zu GitHub und laden Sie user-cluster.sh herunter.

  2. Machen Sie das Skript ausführbar, indem Sie den folgenden Befehl im selben Verzeichnis wie user-cluster.sh ausführen:

    chmod +x user-cluster.sh
  3. Nur für Air Gap-Umgebungen: Öffnen Sie user-cluster.sh und ersetzen Sie yaml_url durch die URL in user-cluster.yml.

    Wenn Sie keine Air Gap-Umgebung haben, überspringen Sie diesen Schritt.

  4. Führen Sie aus demselben Verzeichnis das Skript aus und geben Sie die rancher/rancher-agent Bildversion an, die der Version von Rancher entsprechen sollte, die zur Verwaltung des Clusters verwendet wird. (<RANCHER_VERSION>):

    Fügen Sie das -dry-run Flag hinzu, um das Ergebnis des Skripts anzuzeigen, ohne Änderungen vorzunehmen.

    ./user-cluster.sh rancher/rancher-agent:<RANCHER_VERSION>

Ergebnis: Das Skript wird ausgeführt. Alle für registrierte Cluster in Was wird entfernt? aufgeführten Komponenten werden gelöscht.

Bereinigung der Knoten

  • RKE2

  • K3s

Für Anweisungen zur Bereinigung von Knoten in RKE2-Clustern, die nicht von Rancher bereitgestellt wurden, siehe die offizielle RKE2-Dokumentation zum Deinstallieren von Clustern.

Sie müssen die folgenden Komponenten von den von Rancher bereitgestellten RKE2-Knoten entfernen:

  • Der rancher-system-agent, der sich mit Rancher verbindet und RKE2 installiert und verwaltet.

  • RKE2 selbst.

Entfernen des rancher-system-agent

Um den rancher-system-agent zu entfernen, führen Sie das system-agent-uninstall.sh Skript aus:

curl https://raw.githubusercontent.com/rancher/system-agent/main/system-agent-uninstall.sh > system-agent-uninstall.sh
sudo sh system-agent-uninstall.sh

Entfernen von RKE2

Um die RKE2-Installation zu entfernen, führen Sie das rke2-uninstall Skript aus, das bereits auf dem Knoten vorhanden ist:

sudo rke2-uninstall.sh

Sie müssen die folgenden Komponenten von den von Rancher bereitgestellten K3s-Knoten entfernen:

  • Der rancher-system-agent, der sich mit Rancher verbindet und K3s installiert und verwaltet.

  • K3s selbst.

Entfernen des rancher-system-agent

Um den rancher-system-agent zu entfernen, führen Sie das system-agent-uninstall.sh Skript aus:

curl https://raw.githubusercontent.com/rancher/system-agent/main/system-agent-uninstall.sh > system-agent-uninstall.sh
sudo sh system-agent-uninstall.sh

Entfernen von K3s

Um die K3s-Installation zu entfernen, führen Sie das k3s-uninstall Skript aus, das bereits auf dem Knoten vorhanden ist:

sudo k3s-uninstall.sh

Verzeichnissen und Dateien

Die folgenden Verzeichnisse werden verwendet, wenn ein Knoten zu einem Cluster hinzugefügt wird, und sollten entfernt werden. Sie können ein Verzeichnis mit rm -rf /directory_name entfernen.

Je nach der Rolle, die Sie dem Knoten zugewiesen haben, können bestimmte Verzeichnisse auf dem Knoten vorhanden sein oder nicht.

  • RKE2

  • K3s

Verzeichnisse

/etc/ceph

/etc/cni

/etc/kubernetes

/etc/rancher

/opt/cni

/run/calico

/run/flannel

/run/secrets/kubernetes.io

/var/lib/calico

/var/lib/cni

/var/lib/etcd

/var/lib/kubelet

/var/lib/rancher

/var/lib/weave

/var/log/containers

/var/log/pods

/var/run/calico

Um die Verzeichnisse zu bereinigen:

rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /etc/rancher \
       /opt/cni \
       /run/calico \
       /run/flannel \
       /run/secrets/kubernetes.io \
       /var/lib/calico \
       /var/lib/cni \
       /var/lib/etcd \
       /var/lib/kubelet \
       /var/lib/rancher \
       /var/lib/weave \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico
Verzeichnisse

/etc/ceph

/etc/cni

/etc/kubernetes

/etc/rancher

/etc/systemd/system/k3s

/opt/cni

/run/calico

/run/flannel

/run/secrets/kubernetes.io

/usr/local/bin/k3s

/var/lib/calico

/var/lib/cni

/var/lib/etcd

/var/lib/kubelet

/var/lib/rancher

/var/lib/weave

/var/log/containers

/var/log/pods

/var/run/calico

Um die Verzeichnisse zu bereinigen:

rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /etc/rancher \
       /etc/systemd/system/k3s \
       /opt/cni \
       /run/calico \
       /run/flannel \
       /run/secrets/kubernetes.io \
       /usr/local/bin/k3s \
       /var/lib/calico \
       /var/lib/cni \
       /var/lib/etcd \
       /var/lib/kubelet \
       /var/lib/rancher \
       /var/lib/weave \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico

Netzwerkschnittstellen und Iptables

Die verbleibenden zwei Komponenten, die geändert/konfiguriert werden, sind (virtuelle) Netzwerkschnittstellen und Iptables-Regeln. Beide sind nicht persistent für den Knoten, was bedeutet, dass sie nach einem Neustart des Knotens gelöscht werden. Um diese Komponenten zu entfernen, wird ein Neustart empfohlen.

Um einen Knoten neu zu starten:

# using reboot
$ sudo reboot

# using shutdown
$ sudo shutdown -r now

Wenn Sie mehr über (virtuelle) Netzwerkschnittstellen oder Iptables-Regeln erfahren möchten, lesen Sie bitte die spezifischen Themen unten.

Netzwerkschnittstellen

Je nach dem Netzwerkprovider, der für den Cluster konfiguriert ist, zu dem der Knoten gehörte, werden einige der Schnittstellen auf dem Knoten vorhanden sein oder nicht.

Schnittstellen

flannel.1

cni0

tunl0

caliXXXXXXXXXXX (zufällige Schnittstellennamen)

vethXXXXXXXX (zufällige Schnittstellennamen)

Um alle Netzwerkschnittstellen aufzulisten:

# Using ip
ip address show

# Using ifconfig
ifconfig -a

Um eine Netzwerkschnittstelle zu entfernen:

ip link delete interface_name

iptables

Je nach dem Netzwerkprovider, der für den Cluster konfiguriert ist, zu dem der Knoten gehörte, werden einige der Ketten auf dem Knoten vorhanden sein oder nicht.

Iptables-Regeln werden verwendet, um den Datenverkehr von und zu Containern zu leiten. Die erstellten Regeln sind nicht persistent, sodass ein Neustart des Knotens iptables in seinen ursprünglichen Zustand zurücksetzt.

Ketten

cali-failsafe-in

cali-failsafe-out

cali-fip-dnat

cali-fip-snat

cali-from-hep-forward

cali-from-host-endpoint

cali-from-wl-dispatch

cali-fw-caliXXXXXXXXXXX (zufällige Kettennamen)

cali-nat-outgoing

cali-pri-kns.NAMESPACE (Kette pro Namespace)

cali-pro-kns.NAMESPACE (Kette pro Namespace)

cali-to-hep-forward

cali-to-host-endpoint

cali-to-wl-dispatch

cali-tw-caliXXXXXXXXXXX (zufällige Kettennamen)

cali-wl-to-host

KUBE-EXTERNAL-SERVICES

KUBE-FIREWALL

KUBE-MARK-DROP

KUBE-MARK-MASQ

KUBE-NODEPORTS

KUBE-SEP-XXXXXXXXXXXXXXXX (zufällige Kettennamen)

KUBE-SERVICES

KUBE-SVC-XXXXXXXXXXXXXXXX (zufällige Kettennamen)

Um alle iptables-Regeln aufzulisten:

iptables -L -t nat
iptables -L -t mangle
iptables -L