Windows HostProcess Container: Eine neue Ära für Kubernetes-Management
Entdecken Sie die neuen HostProcess Container in Kubernetes v1.22 und wie sie das Management von Windows-Umgebungen revolutionieren.
Kubernetes v1.22 hat eine spannende neue Alpha-Funktion für Cluster mit Windows-Knoten eingeführt: HostProcess Container.
HostProcess Container erweitern das Windows-Container-Modell und ermöglichen eine Vielzahl von Szenarien für das Management von Kubernetes-Clustern. Diese Container laufen direkt auf dem Host und verhalten sich ähnlich wie reguläre Prozesse. Mit HostProcess Containern können Nutzer Management-Operationen und -Funktionen, die Hostzugriff erfordern, verpacken und verteilen, während sie die Versionskontrolle und Bereitstellungsmethoden von Containern beibehalten. Dadurch können Windows-Container für verschiedene Szenarien in Bezug auf Geräte-Plugins, Speicher- und Netzwerkmanagement in Kubernetes verwendet werden.
Ein wesentliches Merkmal ist der Hostnetzwerk-Modus, der es HostProcess Containern ermöglicht, im Netzwerk-Namespace des Hosts statt in ihrem eigenen zu laufen. HostProcess Container können zudem auf bestehenden Windows Server 2019 (oder später) Basis-Images aufgebaut werden, über die Windows-Container-Laufzeit verwaltet werden und als jeder Benutzer ausgeführt werden, der auf dem Host verfügbar ist oder in der Domäne vorhanden ist.
Bisher wurden für verschiedene Schlüssel-Szenarien in Kubernetes, wie kube-proxy (über kubeadm), Speicher- und Netzwerk-Szenarien, privilegierte Linux-Container eingesetzt. Die Unterstützung dieser Szenarien unter Windows erforderte zuvor Umgehungslösungen über Proxys oder andere Implementierungen. Mit HostProcess Containern müssen Cluster-Betreiber nicht mehr auf jeden Windows-Knoten zugreifen und ihn individuell für administrative Aufgaben und das Management von Windows-Diensten konfigurieren. Stattdessen können sie das Container-Modell nutzen, um Management-Logik einfach auf so viele Cluster wie nötig zu verteilen.
Wie funktioniert das?
Windows HostProcess Container werden mit Windows Job Objects implementiert, was einen Abbruch des vorherigen Container-Modells mit Server-Silos darstellt. Job Objects sind Komponenten des Windows-Betriebssystems, die es ermöglichen, eine Gruppe von Prozessen als Gruppe (auch bekannt als Jobs) zu verwalten und Ressourcenbeschränkungen für die gesamte Gruppe festzulegen. Job Objects sind spezifisch für das Windows-Betriebssystem und stehen nicht in Zusammenhang mit der Kubernetes Job API. Sie bieten keine Prozess- oder Dateisystemisolierung, wodurch das privilegierte Payload die Host-Dateisysteme mit den entsprechenden Berechtigungen einsehen und bearbeiten kann, sowie andere Host-Ressourcen. Der Init-Prozess und alle Prozesse, die er startet oder die explizit vom Benutzer gestartet werden, werden dem Job Object dieses Containers zugewiesen. Wenn der Init-Prozess beendet wird oder ein Signal zum Beenden erhält, werden alle Prozesse im Job ebenfalls zum Beenden signalisiert, der Job-Handle wird geschlossen und der Speicher wird ungemountet.
HostProcess Container und Linux-privilegierte Container ermöglichen ähnliche Szenarien, unterscheiden sich jedoch erheblich in ihrer Implementierung (daher die unterschiedliche Benennung). HostProcess Container haben ihre eigenen Pod-Sicherheitsrichtlinien, die nicht für die Konfiguration von Linux-privilegierten Containern gelten. Der Zugang zu einem Windows-Host ist ein grundlegend anderer Prozess als bei Linux, sodass sich die Konfiguration und die Möglichkeiten erheblich unterscheiden. Nachfolgend finden Sie ein Diagramm, das die Gesamtarchitektur von Windows HostProcess Containern detailliert:
Die neuen HostProcess Container bieten eine aufregende Möglichkeit, das Management von Windows-Umgebungen in Kubernetes zu optimieren. Bei ayedo sind wir stolz darauf, Sie bei der Implementierung dieser innovativen Funktion zu unterstützen und Ihnen zu helfen, Ihre Kubernetes-Umgebungen effizienter zu gestalten.
Quelle: Kubernetes Blog