Uaktualnianie wersji systemu operacyjnego dla obciążeń usługi Azure Kubernetes Service (AKS) systemu Windows
Podczas uaktualniania wersji systemu operacyjnego uruchomionego obciążenia systemu Windows w usłudze Azure Kubernetes Service (AKS) należy wdrożyć nową pulę węzłów, aby upewnić się, że wersje systemu Windows są zgodne w każdej puli węzłów. W tym artykule opisano kroki uaktualniania wersji systemu operacyjnego dla obciążeń systemu Windows w usłudze AKS. Chociaż ten przykład koncentruje się na uaktualnieniu z systemu Windows Server 2019 do systemu Windows Server 2022, ten sam proces można wykonać w celu uaktualnienia z dowolnej wersji systemu Windows Server do innej.
Obsługa wersji systemu operacyjnego Windows Server
Po wydaniu nowej wersji systemu operacyjnego Windows Server usługa AKS jest zobowiązana do jej obsługi i zaleca uaktualnienie do najnowszej wersji, aby skorzystać z poprawek, ulepszeń i nowych funkcji. Usługa AKS zapewnia pięcioletni cykl wsparcia dla każdej wersji systemu Windows Server, począwszy od systemu Windows Server 2022. W tym okresie usługa AKS wyda nową wersję, która obsługuje nowszą wersję systemu operacyjnego Windows Server, do której chcesz przeprowadzić uaktualnienie.
Uwaga
- System Windows Server 2019 jest wycofywany, gdy platforma Kubernetes w wersji 1.32 osiągnie koniec życia (EOL). Aby uzyskać więcej informacji, zobacz Informacje o wersji usługi AKS.
- System Windows Server 2022 jest wycofywany po zakończeniu działania platformy Kubernetes w wersji 1.34. Aby uzyskać więcej informacji, zobacz Informacje o wersji usługi AKS.
Ograniczenia
Systemy Windows Server 2019 i Windows Server 2022 nie mogą współistnieć w tej samej puli węzłów w usłudze AKS. Aby hostować nową wersję systemu operacyjnego, należy utworzyć nową pulę węzłów. Ważne jest, aby dopasować uprawnienia i dostęp poprzedniej puli węzłów do nowej.
Zanim rozpoczniesz
- Zaktualizuj instrukcję
FROM
w pliku Dockerfile do nowej wersji systemu operacyjnego. - Sprawdź aplikację i sprawdź, czy aplikacja kontenera działa w nowej wersji systemu operacyjnego.
- Wdróż zweryfikowaną aplikację kontenera w usłudze AKS w środowisku projektowym lub testowym.
- Zanotuj nową nazwę obrazu lub tag do użycia w tym artykule.
Uwaga
Aby dowiedzieć się, jak utworzyć plik Dockerfile dla obciążeń systemu Windows, zobacz Plik Dockerfile w systemie Windows i Optymalizowanie plików Dockerfile systemu Windows.
Dodawanie puli węzłów systemu Windows Server 2022 do istniejącego klastra
- Dodaj pulę węzłów systemu Windows Server 2022 do istniejącego klastra.
Aktualizowanie pliku YAML
Selektor węzłów jest najbardziej typową i zalecaną opcją umieszczania zasobników systemu Windows w węzłach systemu Windows.
Dodaj selektor węzła do pliku YAML, dodając następującą adnotację:
nodeSelector: "kubernetes.io/os": windows
Adnotacja znajduje dowolny dostępny węzeł systemu Windows i umieszcza zasobnik w tym węźle (zgodnie z innymi regułami planowania). Podczas uaktualniania z systemu Windows Server 2019 do systemu Windows Server 2022 należy wymusić umieszczanie w węźle systemu Windows i węźle z najnowszą wersją systemu operacyjnego. Aby to osiągnąć, jedną z opcji jest użycie innej adnotacji:
nodeSelector: "kubernetes.azure.com/os-sku": Windows2022
Po zaktualizowaniu
nodeSelector
pliku YAML należy również zaktualizować obraz kontenera, którego chcesz użyć. Te informacje można uzyskać z poprzedniego kroku, w którym utworzono nową wersję konteneryzowanej aplikacji, zmieniając instrukcjęFROM
w pliku Dockerfile.
Uwaga
Do początkowego wdrożenia aplikacji należy użyć tego samego pliku YAML. Dzięki temu nie ma żadnych innych zmian konfiguracji oprócz obrazu kontenera nodeSelector
i .
Stosowanie zaktualizowanego pliku YAML do istniejącego obciążenia
Wyświetl węzły w klastrze przy użyciu
kubectl get nodes
polecenia .kubectl get nodes -o wide
Następujące przykładowe dane wyjściowe przedstawiają wszystkie węzły w klastrze, w tym utworzoną nową pulę węzłów i istniejące pule węzłów:
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
Zastosuj zaktualizowany plik YAML do istniejącego obciążenia przy użyciu
kubectl apply
polecenia i określ nazwę pliku YAML.kubectl apply -f <filename>
Następujące przykładowe dane wyjściowe pokazują skonfigurowany stan wdrożenia:
deployment.apps/sample configured service/sample unchanged
W tym momencie usługa AKS rozpoczyna proces kończenie istniejących zasobników i wdrażanie nowych zasobników w węzłach systemu Windows Server 2022.
Sprawdź stan wdrożenia przy użyciu
kubectl get pods
polecenia .kubectl get pods -o wide
W poniższych przykładowych danych wyjściowych są wyświetlane zasobniki w
default
przestrzeni nazw: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>
Zagadnienia dotyczące zabezpieczeń i uwierzytelniania
Jeśli używasz kont usług zarządzanych przez grupę (gMSA), musisz zaktualizować konfigurację tożsamości zarządzanej dla nowej puli węzłów. Usługa gMSA używa wpisu tajnego (konta użytkownika i hasła), więc węzeł z uruchomionym zasobnikiem systemu Windows może uwierzytelnić kontener względem identyfikatora Entra firmy Microsoft. Aby uzyskać dostęp do tego wpisu tajnego w usłudze Azure Key Vault, węzeł używa tożsamości zarządzanej, która umożliwia węzłowi dostęp do zasobu. Ponieważ tożsamości zarządzane są konfigurowane na pulę węzłów, a zasobnik znajduje się teraz w nowej puli węzłów, należy zaktualizować konfigurację. Aby uzyskać więcej informacji, zobacz Włączanie kont usług zarządzanych przez grupę (GMSA) dla węzłów systemu Windows Server w klastrze usługi Azure Kubernetes Service (AKS).
Ta sama zasada dotyczy tożsamości zarządzanych dla innych zasobników lub puli węzłów podczas uzyskiwania dostępu do innych zasobów platformy Azure. Aby odzwierciedlić nową pulę węzłów, należy zaktualizować dostęp zapewniany przez tożsamość zarządzaną. Aby wyświetlić działania dotyczące aktualizacji i logowania, zobacz Jak wyświetlić działanie tożsamości zarządzanej.
Następne kroki
W tym artykule przedstawiono sposób uaktualniania wersji systemu operacyjnego dla obciążeń systemu Windows w usłudze AKS. Aby dowiedzieć się więcej o obciążeniach systemu Windows w usłudze AKS, zobacz Wdrażanie aplikacji kontenera systemu Windows w usłudze Azure Kubernetes Service (AKS).
Azure Kubernetes Service