Uppgradera operativsystemets version för dina Windows-arbetsbelastningar i Azure Kubernetes Service (AKS)
När du uppgraderar operativsystemets version av en Windows-arbetsbelastning som körs i Azure Kubernetes Service (AKS) måste du distribuera en ny nodpool för att säkerställa att Windows-versionerna matchar på varje nodpool. I den här artikeln beskrivs stegen för att uppgradera operativsystemets version för Windows-arbetsbelastningar i AKS. Även om det här exemplet fokuserar på uppgraderingen från Windows Server 2019 till Windows Server 2022, kan samma process följas för att uppgradera från valfri Windows Server-version till en annan.
Stöd för Windows Server OS-version
När en ny version av Windows Server-operativsystemet släpps har AKS åtagit sig att stödja det och rekommenderar att du uppgraderar till den senaste versionen för att dra nytta av korrigeringar, förbättringar och nya funktioner. AKS tillhandahåller en femårig supportlivscykel för varje Windows Server-version, från och med Windows Server 2022. Under den här perioden släpper AKS en ny version som stöder en nyare version av Windows Server OS som du kan uppgradera till.
Kommentar
- Windows Server 2019 dras tillbaka när Kubernetes version 1.32 når slutet av livslängden (EOL). Mer information finns i viktig information om AKS.
- Windows Server 2022 dras tillbaka när Kubernetes version 1.34 når sin livslängd (EOL). Mer information finns i viktig information om AKS.
Begränsningar
Windows Server 2019 och Windows Server 2022 kan inte samexistera i samma nodpool i AKS. Du måste skapa en ny nodpool som värd för den nya operativsystemversionen. Det är viktigt att du matchar behörigheterna och åtkomsten för den tidigare nodpoolen till den nya.
Innan du börjar
- Uppdatera -instruktionen
FROM
i Dockerfile till den nya os-versionen. - Kontrollera ditt program och kontrollera att containerappen fungerar på den nya operativsystemversionen.
- Distribuera den verifierade containerappen i AKS till en utvecklings- eller testmiljö.
- Anteckna det nya avbildningsnamnet eller taggen för användning i den här artikeln.
Kommentar
Information om hur du skapar en Dockerfile för Windows-arbetsbelastningar finns i Dockerfile i Windows och Optimera Windows Dockerfiles.
Lägga till en Windows Server 2022-nodpool i ett befintligt kluster
- Lägg till en Windows Server 2022-nodpool i ett befintligt kluster.
Uppdatera YAML-filen
Node Selector är det vanligaste och rekommenderade alternativet för placering av Windows-poddar på Windows-noder.
Lägg till Node Selector i YAML-filen genom att lägga till följande kommentar:
nodeSelector: "kubernetes.io/os": windows
Anteckningen hittar alla tillgängliga Windows-noder och placerar podden på noden (efter alla andra schemaläggningsregler). När du uppgraderar från Windows Server 2019 till Windows Server 2022 måste du tillämpa placeringen på en Windows-nod och en nod som kör den senaste operativsystemversionen. För att åstadkomma detta är ett alternativ att använda en annan anteckning:
nodeSelector: "kubernetes.azure.com/os-sku": Windows2022
När du har uppdaterat
nodeSelector
i YAML-filen måste du också uppdatera den containeravbildning som du vill använda. Du kan hämta den här informationen från föregående steg där du skapade en ny version av det containerbaserade programmet genom att ändra -instruktionenFROM
på din Dockerfile.
Kommentar
Du bör använda samma YAML-fil som du använde för att först distribuera programmet. Detta säkerställer att inga andra konfigurationsändringar förutom containeravbildningen nodeSelector
och .
Tillämpa den uppdaterade YAML-filen på den befintliga arbetsbelastningen
Visa noderna i klustret med hjälp av
kubectl get nodes
kommandot .kubectl get nodes -o wide
Följande exempelutdata visar alla noder i klustret, inklusive den nya nodpoolen som du skapade och de befintliga nodpoolerna:
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
Använd den uppdaterade YAML-filen på den befintliga arbetsbelastningen
kubectl apply
med kommandot och ange namnet på YAML-filen.kubectl apply -f <filename>
Följande exempelutdata visar en konfigurerad status för distributionen:
deployment.apps/sample configured service/sample unchanged
Nu startar AKS processen med att avsluta befintliga poddar och distribuera nya poddar till Windows Server 2022-noderna.
Kontrollera statusen för distributionen med hjälp av
kubectl get pods
kommandot .kubectl get pods -o wide
Följande exempelutdata visar poddarna i
default
namnområdet: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>
Säkerhets- och autentiseringsöverväganden
Om du använder grupphanterade tjänstkonton (gMSA) måste du uppdatera konfigurationen för hanterad identitet för den nya nodpoolen. gMSA använder en hemlighet (användarkonto och lösenord) så att noden som kör Windows-podden kan autentisera containern mot Microsoft Entra-ID. För att komma åt den hemligheten i Azure Key Vault använder noden en hanterad identitet som gör att noden kan komma åt resursen. Eftersom hanterade identiteter har konfigurerats per nodpool och podden nu finns i en ny nodpool måste du uppdatera den konfigurationen. Mer information finns i Aktivera grupphanterade tjänstkonton (GMSA) för dina Windows Server-noder i ditt AkS-kluster (Azure Kubernetes Service).
Samma princip gäller för hanterade identiteter för andra poddar eller nodpooler vid åtkomst till andra Azure-resurser. Du måste uppdatera all åtkomst som hanterad identitet tillhandahåller för att återspegla den nya nodpoolen. Information om hur du visar uppdaterings- och inloggningsaktiviteter finns i Visa aktivitet för hanterad identitet.
Nästa steg
I den här artikeln har du lärt dig hur du uppgraderar operativsystemets version för Windows-arbetsbelastningar i AKS. Mer information om Windows-arbetsbelastningar i AKS finns i Distribuera ett Windows-containerprogram på Azure Kubernetes Service (AKS).
Azure Kubernetes Service