Aktualisieren der Betriebssystemversion für Ihre Azure Kubernetes Service (AKS)-Windows-Workloads
Beim Upgrade der Betriebssystemversion einer ausgeführten Windows-Workload in Azure Kubernetes Service (AKS) müssen Sie einen neuen Knotenpool bereitstellen, um sicherzustellen, dass die Windows-Versionen in jedem Knotenpool übereinstimmen. In diesem Artikel werden die Schritte zum Aktualisieren der Betriebssystemversion für Windows-Workloads auf AKS beschrieben. Zwar bezieht sich dieses Beispiel auf das Upgrade von Windows Server 2019 auf Windows Server 2022, derselben Prozess kann jedoch angewendet werden, um von jeder Windows Server-Version auf eine andere zu aktualisieren.
Unterstützung der Windows Server-Betriebssystemversion
Wenn eine neue Version des Windows Server-Betriebssystems veröffentlicht wird, verpflichtet sich AKS, diese zu unterstützen, und empfiehlt, ein Upgrade auf die neueste Version durchzuführen, um die Fixes, Verbesserungen und neue Funktionen nutzen zu können. AKS bietet ab Windows Server 2022 einen fünfjährigen Supportlebenszyklus für jede Windows Server-Version. In diesem Zeitraum veröffentlicht AKS eine neue Version, die eine neuere Version des Windows Server-Betriebssystems unterstützt, auf die Sie aktualisieren können.
Hinweis
- Windows Server 2019 wird eingestellt, nachdem Kubernetes, Version 1.32, das Ende seiner Lebensdauer (EOL) erreicht hat. Weitere Informationen finden Sie in den AKS-Versionshinweisen.
- Windows Server 2022 wird eingestellt, nachdem Kubernetes, Version 1.34, das Ende seiner Lebensdauer (EOL) erreicht hat. Weitere Informationen finden Sie in den AKS-Versionshinweisen.
Begrenzungen
Windows Server 2019 und Windows Server 2022 können nicht gemeinsam in demselben Knotenpool in AKS vorhanden sein. Sie müssen einen neuen Knotenpool erstellen, um die neue Betriebssystemversion zu hosten. Es ist wichtig, dass Sie die Berechtigungen und den Zugriff des vorherigen Knotenpools auf den neuen Pool abstimmen.
Voraussetzungen
- Aktualisieren Sie die
FROM
-Anweisung in Ihrem Dockerfile auf die neue Betriebssystemversion. - Überprüfen Sie für Ihre Anwendung, ob die Container-App unter der neuen Betriebssystemversion funktioniert.
- Stellen Sie die überprüfte Container-App in AKS in einer Entwicklungs- oder Testumgebung bereit.
- Notieren Sie sich den neuen Imagenamen oder das Tag für die Verwendung in diesem Artikel.
Hinweis
Weitere Informationen zum Erstellen eines Dockerfile für Windows-Workloads finden Sie unter Dockerfile unter Windows und Optimieren von Windows-Dockerfile-Dateien.
Hinzufügen eines Windows Server 2022-Knotenpools zu einem vorhandenen Cluster
- Fügen Sie einen Windows Server 2022-Knotenpool zu einem vorhandenen Cluster hinzu.
Aktualisieren der YAML-Datei
Die Knotenauswahl ist die am häufigsten verwendete und empfohlene Option für die Platzierung von Windows-Pods auf Windows-Knoten.
Fügen Sie Ihrer YAML-Datei den Knotenselektor hinzu, indem Sie die folgende Anmerkung hinzufügen:
nodeSelector: "kubernetes.io/os": windows
Die Anmerkung findet alle verfügbaren Windows-Knoten und platziert den Pod auf diesem Knoten (gemäß allen anderen Planungsregeln). Beim Upgrade von Windows Server 2019 auf Windows Server 2022 müssen Sie die Platzierung auf einem Windows-Knoten und auf einem Knoten erzwingen, der die neueste Betriebssystemversion ausführt. Um dies zu erreichen, besteht eine Option in der Verwendung einer anderen Anmerkung:
nodeSelector: "kubernetes.azure.com/os-sku": Windows2022
Nachdem Sie den
nodeSelector
in der YAML-Datei aktualisiert haben, müssen Sie auch das zu verwendende Containerimage aktualisieren. Sie können diese Informationen aus dem vorherigen Schritt abrufen, in dem Sie eine neue Version der containerisierten Anwendung erstellt haben. Ändern Sie dazu dieFROM
-Anweisung in Ihrer Dockerfile-Datei.
Hinweis
Sie sollten dieselbe YAML-Datei verwenden, die Sie für die anfängliche Bereitstellung der Anwendung verwendet haben. Dadurch wird sichergestellt, dass sich außer dem Containerimage und nodeSelector
keine weiteren Konfigurationsänderungen ändern.
Anwenden der aktualisierten YAML-Datei auf die vorhandene Workload
Zeigen Sie die Knoten in Ihrem Cluster mit dem Befehl
kubectl get nodes
an.kubectl get nodes -o wide
Die folgende Beispielausgabe zeigt alle Knoten im Cluster, einschließlich des neuen Knotenpools, den Sie erstellt haben, und den vorhandenen Knotenpools:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-agentpool-18877473-vmss000000 Ready agent 5h40m v1.23.8 10.240.0.4 <none> Ubuntu 18.04.6 LTS 5.4.0-1085-azure containerd://1.5.11+azure-2 akspoolws000000 Ready agent 3h15m v1.23.8 10.240.0.208 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akspoolws000001 Ready agent 3h17m v1.23.8 10.240.0.239 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akspoolws000002 Ready agent 3h17m v1.23.8 10.240.1.14 <none> Windows Server 2022 Datacenter 10.0.20348.825 containerd://1.6.6+azure akswspool000000 Ready agent 5h37m v1.23.8 10.240.0.115 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure akswspool000001 Ready agent 5h37m v1.23.8 10.240.0.146 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure akswspool000002 Ready agent 5h37m v1.23.8 10.240.0.177 <none> Windows Server 2019 Datacenter 10.0.17763.3165 containerd://1.6.6+azure
Wenden Sie die aktualisierte YAML-Datei mithilfe des Befehls
kubectl apply
auf die vorhandene Workload an, und geben Sie den Namen der YAML-Datei an.kubectl apply -f <filename>
Die folgende Beispielausgabe zeigt einen konfigurierten Status für die Bereitstellung:
deployment.apps/sample configured service/sample unchanged
An diesem Punkt startet AKS den Vorgang, die vorhandenen Pods zu beenden und neue Pods auf den Windows Server 2022-Knoten bereitzustellen.
Überprüfen Sie mit dem Befehl
kubectl get pods
den Status der Bereitstellung.kubectl get pods -o wide
Die folgende Beispielausgabe zeigt die Pods im
default
-Namespace:NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sample-7794bfcc4c-k62cq 1/1 Running 0 2m49s 10.240.0.238 akspoolws000000 <none> <none> sample-7794bfcc4c-rswq9 1/1 Running 0 2m49s 10.240.1.10 akspoolws000001 <none> <none> sample-7794bfcc4c-sh78c 1/1 Running 0 2m49s 10.240.0.228 akspoolws000000 <none> <none>
Überlegungen zu Sicherheit und Authentifizierung
Wenn Sie gruppenverwaltete Dienstkonten (gMSAs, Group Managed Service Accounts) nutzen, müssen Sie die Konfiguration für verwaltete Identitäten für den neuen Knotenpool aktualisieren. gMSA verwendet ein Geheimnis (Benutzerkonto und Kennwort), damit der Knoten, auf dem der Windows-Pod ausgeführt wird, den Container für Microsoft Entra ID authentifizieren kann. Um auf dieses Geheimnis in Azure Key Vault zuzugreifen, verwendet der Knoten eine verwaltete Identität, mit der der Knoten auf die Ressource zugreifen kann. Da verwaltete Identitäten pro Knotenpool konfiguriert werden und sich der Pod jetzt in einem neuen Knotenpool befindet, müssen Sie diese Konfiguration aktualisieren. Weitere Informationen finden Sie unter Aktivieren von gruppenverwalteten Dienstkonten (GMSAs) für Ihre Windows Server-Knoten auf Ihrem AKS-Cluster (Azure Kubernetes Service).
Dasselbe Prinzip gilt für verwaltete Identitäten, die für einen anderen Pod oder Knotenpool beim Zugriff auf andere Azure-Ressourcen verwendet werden. Sie müssen alle Zugriffsrechte, die verwaltete Identität Identity bereitstellt, aktualisieren, um den neuen Knotenpool zu berücksichtigen. Informationen zum Anzeigen von Update- und Anmeldeaktivitäten finden Sie unter Anzeigen von Update- und Anmeldeaktivitäten für verwaltete Identitäten.
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie die Betriebssystemversion für Windows-Workloads auf AKS aktualisiert wird. Weitere Informationen zu Windows-Workloads in AKS finden Sie unter Bereitstellen einer Windows-Containeranwendung auf Azure Kubernetes Service (AKS).
Azure Kubernetes Service