[Cloud Native] Die Beziehung zwischen der neuen Version von k8s und Docker und Containerd

Inhaltsverzeichnis

1. Bei der Installation einer neuen Version von k8s wird nicht erkannt, dass Docker auf dem System installiert ist. Was wird stattdessen von k8s verwendet?

2. Wie hängt k8s während des Installationsprozesses mit Docker zusammen?


        In neueren Versionen von Kubernetes ist die Beziehung zwischen Docker und Containerd unabhängig voneinander und keine alternative Beziehung. Konkret wird nach Kubernetes Version 1.20 empfohlen, Containerd standardmäßig als Container-Laufzeitumgebung zu verwenden und nicht mehr auf Docker zu setzen.

        Kubernetes Version 1.20 führt eine stabile Version von CRI (Container Runtime Interface) ein, die eine Standardschnittstelle zwischen Kubernetes und Container Runtime definiert. Auf diese Weise kann Kubernetes mit jeder CRI-kompatiblen Containerlaufzeit interagieren, nicht nur mit Docker.

        Docker ist weiterhin als eine der Container-Laufzeiten für Kubernetes verfügbar, aber es ist nicht mehr die Standardauswahl. Kubernetes Version 1.20 und höher kommunizieren mit der Container-Laufzeit über die CRI-Schnittstelle, wobei Containerd eine häufige Wahl für die Container-Laufzeit ist.

        Containerd ist ein unabhängiges Open-Source-Projekt, das Container-Lebenszyklusmanagement und grundlegende Funktionen zum Ausführen von Containern bietet. Es entspricht den CRI-Standards und ist eng in Kubernetes integriert. Daher ist Containerd zu einer der am häufigsten verwendeten Container-Laufzeitumgebungen für Kubernetes geworden, und viele Kubernetes-Distributionen verwenden Containerd standardmäßig als empfohlene Container-Laufzeitumgebung.

        Es ist wichtig zu beachten, dass Kubernetes weiterhin in andere CRI-kompatible Containerlaufzeiten wie CRI-O und rkt integriert werden kann. Auf diese Weise können Benutzer die geeignete Container-Laufzeit basierend auf ihren Anforderungen und Vorlieben auswählen, um Container in Kubernetes zu verwalten und auszuführen.

1. Bei der Installation einer neuen Version von k8s wird nicht erkannt, dass Docker auf dem System installiert ist. Was wird stattdessen von k8s verwendet?

        Bei der Installation neuerer Versionen von Kubernetes kann Kubernetes anstelle von Docker andere Containerlaufzeiten verwenden, wenn Docker nicht auf dem System installiert erkannt wird. In Kubernetes stehen mehrere gängige Container-Laufzeiten zur Auswahl:

        1. Containerd: Containerd ist eine leichte Container-Laufzeitumgebung, die ursprünglich als Teil von Docker entwickelt und später zu einem unabhängigen Projekt wurde. Containerd bietet Container-Lebenszyklusverwaltung und grundlegende Funktionen zum Ausführen von Containern und kann als Container-Laufzeitumgebung für Kubernetes verwendet werden. Containerd wird von den meisten Kubernetes-Distributionen unterstützt.

        2. CRI-O: CRI-O ist eine leichtgewichtige Container-Laufzeitumgebung, die speziell für Kubernetes entwickelt wurde und dem Kubernetes Container Runtime Interface (CRI)-Standard entspricht. Es bietet Lebenszyklusmanagement und Betriebsunterstützung für Container und ist eng in Kubernetes integriert. CRI-O nutzt den OCI-Standard (Open Container Initiative), um Container auszuführen und zu verwalten.

        3. rkt (Rocket): rkt ist eine weitere optionale Container-Laufzeitumgebung, die von CoreOS entwickelt wurde. rkt bietet Containerverwaltungs- und Betriebsfunktionen und verfügt über einige Sicherheitsfunktionen und Designprinzipien, wie z. B. die Betonung der Entkopplung vom Hostsystem und die Vereinfachung der Komplexität des Containerbetriebs.

        Jede dieser Containerlaufzeiten kann als Alternative zur Ausführung von Kubernetes ohne Docker verwendet werden. Sie lassen sich in die Containerverwaltungskomponenten von Kubernetes (z. B. Kubelet und Kube-Proxy) integrieren, um Container zu verwalten und zu planen, und führen ähnliche Funktionen wie Docker aus, z. B. Netzwerkkonfiguration, Speichervolumenverwaltung und Containerlebenszyklusverwaltung.

        Welche Containerlaufzeit Sie wählen, hängt von Ihren Anforderungen, Vorlieben und der von Ihnen verwendeten Kubernetes-Distribution ab. Bei der Installation von Kubernetes können Sie die entsprechende Containerlaufzeit gemäß den Anweisungen in der Dokumentation oder im Handbuch auswählen und die entsprechenden Installationsschritte befolgen, um sie zu konfigurieren.

2. Wie hängt k8s während des Installationsprozesses mit Docker zusammen?

        Während des Installationsprozesses wird die Verbindung zwischen Kubernetes (k8s) und Docker hauptsächlich über die Containerlaufzeit (Container Runtime) realisiert. Standardmäßig verwendet Kubernetes Docker als Container-Laufzeitumgebung, Sie können jedoch auch andere Container-Laufzeitumgebungen wie Containerd, CRI-O usw. auswählen.

Im Folgenden sind die allgemeinen Schritte zum Zuordnen von Kubernetes zu Docker während der Installation aufgeführt:

  1. Docker installieren: Zuerst müssen Sie die Docker-Engine auf dem Zielhost installieren. Spezifische Installationsschritte können je nach Betriebssystem variieren. Sie können sich auf die offizielle Docker-Dokumentation oder die betriebssystembezogene Dokumentation beziehen, um die Installationsschritte durchzuführen und sicherzustellen, dass Docker erfolgreich installiert und gestartet wird.

  2. Docker konfigurieren: Unter normalen Umständen kann Kubernetes normal mit der Standardkonfiguration von Docker ausgeführt werden. In einigen Fällen können jedoch einige Konfigurationsänderungen gemäß den Anforderungen von Kubernetes erforderlich sein. Beispielsweise müssen Sie den Fernzugriff von Docker aktivieren (wenn sich der Kubernetes-Masterknoten und die Arbeitsknoten auf unterschiedlichen Maschinen befinden) oder den Cgroup-Treiber von Docker usw. anpassen. Diese Konfigurationsänderungen können in den Konfigurationsdateien von Docker vorgenommen werden.

  3. Kubernetes installieren: Nachdem Docker ordnungsgemäß installiert und konfiguriert wurde, können Sie mit der Installation von Kubernetes fortfahren. Der Installationsprozess von Kubernetes umfasst normalerweise die Verwendung von Tools (wie kubeadm, kops, minikube usw.) zur Clusterinitialisierung und -konfiguration. Während des Installationsprozesses interagiert Kubernetes mit Docker, um Container zu erstellen und zu verwalten.

  4. Überprüfen Sie die Zuordnung: Nach Abschluss der Installation können Sie die Zuordnung zwischen Kubernetes und Docker über das Befehlszeilentool kubectl oder die Kubernetes-API überprüfen. Sie können kubectl verwenden, um einige Container-bezogene Befehle auszuführen, z. B. das Erstellen und Verwalten von Pods, die Bereitstellung usw., und dann beobachten, ob Docker den Container korrekt erstellt und ausführt.

Guess you like

Origin blog.csdn.net/weixin_53678904/article/details/133220189