Portabilität für Container
Gilt für: Windows Server, Version 23H2
Portabilität ist ein Feature des jährlichen Windows Server-Kanals für Container. Portabilität sorgt für einen besseren Upgradeprozess und ermöglicht es Ihnen, die verbesserte Flexibilität und Kompatibilität von Containern vollständig zu nutzen. Dieser Artikel enthält eine ausführliche Erläuterung, wie die Portabilität von Containerimages für Containerhosts des jährlichen Kanals optimiert ist.
Der jährliche Windows Server-Kanal für Container ist eine Edition von Windows Server, die für Azure Kubernetes Service und containerorientierte Windows Server-Bereitstellungen entwickelt wurde, um die Effizienz zu verbessern und eine optimierte Portabilität für Windows- und Linux-Container zu bieten. Weitere Informationen zum jährlichen Kanal für Container in Windows Server finden Sie in unserer TechCommunity-Ankündigung.
Funktionsweise der Portabilität
Windows verwendet einen modularen Kernel, bei dem Komponenten häufig eng zwischen Benutzermodus und Kernelmodus gebunden sind. Eng gebundene Komponenten sind hilfreiche grafische Schnittstellen auf Kernelmodustreibern, oder sie optimieren die Leistung, indem sie Kontextwechsel zwischen Kernel- und Benutzermodus reduzieren. Das stellt jedoch eine Herausforderung für Container dar. Portabilität ermöglicht es Containern, die im Benutzermodus ausgeführt werden, Workloads mit einer anderen Containerimageversion als die Hostbetriebssystem-Version auszuführen.
Ohne Portabilität konnten Benutzer nur Workloads mit übereinstimmender Image- und Hostversion ausführen. Beispielsweise konnte ein Benutzer, der einen Host mit Windows Server 2022 ausführte, keine prozessisolierten Container mit Windows Server 2019 ausführen. Die Versionskontrolle zwischen dem Host und Containerimage war ein wesentlicher Schwachpunkt der Windows-Containerisierung, der den Wechsel zu neueren Versionen eines Containerhosts schwierig machte. Beispielsweise mussten bei Windows Server 2022 LTSC alle Infrastruktur- und Anwendungsimages gleichzeitig mit dem Host auf die neueste Version aktualisiert werden.
Binärschnittstelle
Die Binärschnittstelle (Application Binary Interface, ABI) ermöglicht es verschiedenen Programmiersprachen, mit Schnittstellen im Benutzer- und Kernelmodus zu interagieren. Die Interaktion des Clientcodes mit einem Laufzeitobjekt findet auf der untersten Ebene statt. Dabei werden Clientsprachkonstrukte in Aufrufe für die ABI des Objekts übersetzt. Die Portabilität für Windows-Container führt eine stabile ABI für die Interaktion zwischen Benutzer und Kernel ein. Diese stabile ABI entkoppelt die Benutzer- und Kernelkomponenten des Systems und ermöglicht es, die Kernel- und Benutzerelemente Ihres Systems separat zu aktualisieren.
Die Container können alle Benutzermodus-Binärdaten aus ihrer Basisschicht ausführen, mit Ausnahme der ABI-Schicht.
Das folgende Diagramm veranschaulicht die Kommunikation zwischen den Benutzermodus- und Kernelmoduskomponenten.
Welche Versionen kann ich verwenden?
Nano Server-, Server Core- und Windows Server-Containerimages sind nur über den Long-Term Servicing Channel für Container mit Windows Server 2019 oder höher verfügbar. Weitere Informationen zu unterstützten Windows Server-Containerimages finden Sie unter Wartungslebenszyklen von Basisimages.
Ein Containerhost mit Windows Server, Version 23H2 unterstützt nur das Containerimage mit Windows Server 2022 Long Term Servicing Channel (LTSC).
Azure Kubernetes Service unterstützt derzeit Hosts mit Windows Server 2019 und höher. Der jährliche Windows Server-Kanal für Container ist eine weitere Option für das Containerbetriebssystem, die Microsoft zusammen mit Kubernetes 1.28 anbietet. Sie können neue Knotenpools basierend auf dem jährlichen Kanal erstellen und Ihre Windows Server 2022-Containerimages auf diesen Knoten bereitstellen. Microsoft aktualisiert die Version des jährlichen Kanals und alle neuen Kubernetes-Releases automatisch jährlich. Es wird aber auch empfohlen, die neuesten LTSC-Releases zu verfolgen, um sicherzustellen, dass Ihre Container auf dem neuesten Stand sind.
Hinweis
Obwohl frühere Containerimagereleases auf dem neueren Hostbetriebssystem ausgeführt werden können, können neuere Containerimage-Betriebssysteme nicht auf dem früheren Hostbetriebssystem ausgeführt werden.