De versie van het besturingssysteem upgraden voor uw Windows-workloads van Azure Kubernetes Service (AKS)
Wanneer u de versie van het besturingssysteem van een actieve Windows-workload in Azure Kubernetes Service (AKS) bijwerkt, moet u een nieuwe knooppuntgroep implementeren om ervoor te zorgen dat de Windows-versies overeenkomen met elke knooppuntgroep. In dit artikel worden de stappen beschreven voor het upgraden van de versie van het besturingssysteem voor Windows-workloads in AKS. Hoewel dit voorbeeld is gericht op de upgrade van Windows Server 2019 naar Windows Server 2022, kan hetzelfde proces worden gevolgd om een upgrade uit te voeren van elke Windows Server-versie naar een andere.
Ondersteuning voor versie van Windows Server-besturingssysteem
Wanneer er een nieuwe versie van het Windows Server-besturingssysteem wordt uitgebracht, streeft AKS ernaar deze te ondersteunen en wordt u aangeraden een upgrade uit te voeren naar de nieuwste versie om te profiteren van de fixes, verbeteringen en nieuwe functionaliteit. AKS biedt een levenscyclus van vijf jaar ondersteuning voor elke Windows Server-versie, te beginnen met Windows Server 2022. Gedurende deze periode zal AKS een nieuwe versie vrijgeven die ondersteuning biedt voor een nieuwere versie van het Windows Server-besturingssysteem waarnaar u een upgrade kunt uitvoeren.
Notitie
- Windows Server 2019 wordt buiten gebruik gesteld nadat Kubernetes versie 1.32 het einde van de levensduur (EOL) bereikt. Zie AKS-releaseopmerkingen voor meer informatie.
- Windows Server 2022 wordt buiten gebruik gesteld nadat Kubernetes versie 1.34 het einde van de levensduur (EOL) bereikt. Zie AKS-releaseopmerkingen voor meer informatie.
Beperkingen
Windows Server 2019 en Windows Server 2022 kunnen niet naast elkaar bestaan in dezelfde knooppuntgroep op AKS. U moet een nieuwe knooppuntgroep maken om de nieuwe versie van het besturingssysteem te hosten. Het is belangrijk dat u de machtigingen en toegang van de vorige knooppuntgroep koppelt aan de nieuwe.
Voordat u begint
- Werk de
FROM
instructie in uw Dockerfile bij naar de nieuwe versie van het besturingssysteem. - Controleer uw toepassing en controleer of de container-app werkt op de nieuwe versie van het besturingssysteem.
- Implementeer de geverifieerde container-app op AKS in een ontwikkel- of testomgeving.
- Noteer de nieuwe afbeeldingsnaam of -tag voor gebruik in dit artikel.
Notitie
Zie Dockerfile in Windows en Windows Dockerfiles optimaliseren voor meer informatie over het bouwen van een Dockerfile voor Windows-workloads.
Een Windows Server 2022-knooppuntgroep toevoegen aan een bestaand cluster
- Voeg een Windows Server 2022-knooppuntgroep toe aan een bestaand cluster.
Het YAML-bestand bijwerken
Knooppuntkiezer is de meest voorkomende en aanbevolen optie voor het plaatsen van Windows-pods op Windows-knooppunten.
Voeg nodeselector toe aan uw YAML-bestand door de volgende aantekening toe te voegen:
nodeSelector: "kubernetes.io/os": windows
Met de aantekening worden alle beschikbare Windows-knooppunten gevonden en wordt de pod op dat knooppunt geplaatst (volgens alle andere planningsregels). Wanneer u een upgrade uitvoert van Windows Server 2019 naar Windows Server 2022, moet u de plaatsing afdwingen op een Windows-knooppunt en een knooppunt met de nieuwste versie van het besturingssysteem. Hiervoor kunt u een andere aantekening gebruiken:
nodeSelector: "kubernetes.azure.com/os-sku": Windows2022
Zodra u het
nodeSelector
in het YAML-bestand hebt bijgewerkt, moet u ook de containerinstallatiekopieën bijwerken die u wilt gebruiken. U kunt deze informatie ophalen uit de vorige stap waarin u een nieuwe versie van de containertoepassing hebt gemaakt door deFROM
instructie in uw Dockerfile te wijzigen.
Notitie
U moet hetzelfde YAML-bestand gebruiken dat u hebt gebruikt om de toepassing in eerste instantie te implementeren. Dit zorgt ervoor dat er naast de nodeSelector
en containerinstallatiekopieën geen andere configuratiewijzigingen worden aangebracht.
Het bijgewerkte YAML-bestand toepassen op de bestaande workload
Bekijk de knooppunten in uw cluster met behulp van de
kubectl get nodes
opdracht.kubectl get nodes -o wide
In de volgende voorbeelduitvoer ziet u alle knooppunten in het cluster, inclusief de nieuwe knooppuntgroep die u hebt gemaakt en de bestaande knooppuntgroepen:
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
Pas het bijgewerkte YAML-bestand toe op de bestaande workload met behulp van de
kubectl apply
opdracht en geef de naam op van het YAML-bestand.kubectl apply -f <filename>
In de volgende voorbeelduitvoer ziet u een geconfigureerde status voor de implementatie:
deployment.apps/sample configured service/sample unchanged
Op dit moment start AKS het proces voor het beëindigen van de bestaande pods en het implementeren van nieuwe pods op de Windows Server 2022-knooppunten.
Controleer de status van de implementatie met behulp van de
kubectl get pods
opdracht.kubectl get pods -o wide
In de volgende voorbeelduitvoer ziet u de pods in de
default
naamruimte: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>
Beveiligings- en verificatieoverwegingen
Als u Beheerde serviceaccounts voor groepen (gMSA) gebruikt, moet u de configuratie van de beheerde identiteit voor de nieuwe knooppuntgroep bijwerken. gMSA maakt gebruik van een geheim (gebruikersaccount en wachtwoord), zodat het knooppunt waarop de Windows-pod wordt uitgevoerd, de container kan verifiëren bij Microsoft Entra-id. Voor toegang tot dat geheim in Azure Key Vault gebruikt het knooppunt een beheerde identiteit waarmee het knooppunt toegang heeft tot de resource. Omdat beheerde identiteiten per knooppuntgroep zijn geconfigureerd en de pod zich nu in een nieuwe knooppuntgroep bevindt, moet u die configuratie bijwerken. Zie Group Managed Service Accounts (GMSA) inschakelen voor uw Windows Server-knooppunten in uw AKS-cluster (Azure Kubernetes Service) voor meer informatie.
Hetzelfde principe geldt voor beheerde identiteiten voor elke andere pod of knooppuntgroep bij toegang tot andere Azure-resources. U moet alle toegang die managed identity biedt bijwerken om de nieuwe knooppuntgroep weer te geven. Als u bijwerk- en aanmeldingsactiviteiten wilt weergeven, raadpleegt u Hoe u de activiteiten van beheerde identiteiten kunt weergeven.
Volgende stappen
In dit artikel hebt u geleerd hoe u de versie van het besturingssysteem voor Windows-workloads op AKS bijwerkt. Zie Een Windows-containertoepassing implementeren in Azure Kubernetes Service (AKS) voor meer informatie over Windows-workloads in AKS.
Azure Kubernetes Service