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.

GlusterFS Volumes

Dieser Abschnitt gilt nur für RKE-Cluster.

In Clustern, die Daten auf GlusterFS Volumes speichern, kann es zu einem Problem kommen, bei dem Pods nach dem Neustart des kubelet die Volumes nicht einbinden können. Die Protokollierung des kubelet zeigt: transport endpoint is not connected. Um dies zu verhindern, können Sie Ihren Cluster so konfigurieren, dass das systemd-run-Binary im kubelet-Container eingebunden wird. Es gibt zwei Voraussetzungen, bevor Sie die Cluster-Konfiguration ändern können:

  • Der Knoten muss das systemd-run-Binary installiert haben (dies kann überprüft werden, indem der Befehl which systemd-run auf jedem Cluster-Knoten verwendet wird)

  • Das systemd-run-Binary muss mit dem Debian-Betriebssystem kompatibel sein, auf dem das Hyperkube-Image basiert (dies kann überprüft werden, indem der folgende Befehl auf jedem Cluster-Knoten ausgeführt wird, wobei das Image-Tag durch die Kubernetes-Version ersetzt wird, die Sie verwenden möchten)

docker run -v /usr/bin/systemd-run:/usr/bin/systemd-run -v /usr/lib/x86_64-linux-gnu/libcrypto.so.3:/usr/lib/x86_64-linux-gnu/libcrypto.so.3 -v /lib/systemd/libsystemd-shared-249.so:/lib/systemd/libsystemd-shared-249.so --entrypoint /usr/bin/systemd-run rancher/hyperkube:v1.26.14-rancher1 --version

Bevor Sie Ihr Kubernetes-YAML aktualisieren, um das systemd-run-Binary einzubinden, stellen Sie sicher, dass das systemd-Paket auf Ihren Cluster-Knoten installiert ist. Wenn dieses Paket nicht installiert ist bevor die Bind-Mounts in Ihrem Kubernetes-YAML erstellt werden, wird Docker automatisch die Verzeichnisse und Dateien auf jedem Knoten erstellen und die Installation des Pakets wird nicht erfolgreich sein.

services:
  kubelet:
    extra_binds:
      - "/usr/bin/systemd-run:/usr/bin/systemd-run"
      - "/usr/lib/x86_64-linux-gnu/libcrypto.so.3:/usr/lib/x86_64-linux-gnu/libcrypto.so.3"
      - "/lib/systemd/libsystemd-shared-249.so:/lib/systemd/libsystemd-shared-249.so"

Nachdem der Cluster die Bereitstellung abgeschlossen hat, können Sie die Protokollierung des kubelet-Containers überprüfen, um zu sehen, ob die Funktionalität aktiviert ist, indem Sie nach der folgenden Protokollzeile suchen:

Detected OS with systemd