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.

Obsługa wersji systemu operacyjnego Windows Server

Po wydaniu nowej wersji systemu operacyjnego Windows Server, AKS zobowiązuje się do jej wspierania. Zalecamy 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 publikuje nową wersję, która obsługuje nowszą wersję systemu operacyjnego Windows Server, do której chcesz przeprowadzić uaktualnienie. Po zakończeniu cyklu życia pięcioletniego należy przeprowadzić migrację obciążeń do nowszych obsługiwanych wersji, aby zapewnić zgodność, aktualizacje zabezpieczeń i ciągłą obsługę usługi AKS.

Ważne

Od 30 czerwca 2028 r. Azure Kubernetes Service (AKS) nie obsługuje już pul węzłów Windows Server 2022. Windows Server 2022 nie jest obsługiwana w rozwiązaniu Kubernetes w wersji 1.37 lub nowszej. Począwszy od 30 czerwca 2029 r., usługa AKS usunie wszystkie istniejące obrazy węzłów dla Windows Server 2022, co oznacza, że operacje skalowania zakończy się niepowodzeniem. Aby uzyskać więcej informacji na temat tego wycofania, zobacz zgłoszenie GitHub dotyczące wycofania i ogłoszenie o wycofaniu na platformie Azure Updates. Aby być na bieżąco z ogłoszeniami i aktualizacjami, postępuj zgodnie z informacjami o wersji usługi AKS.

Limitations

  • Aktualizacja puli węzłów w celu migracji z jednej wersji systemu Windows Server do innej nie jest obsługiwana.
  • Różne wersje systemu Windows Server 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.
  • System Windows Server 2025 jest obsługiwany od wersji 1.32 platformy Kubernetes.

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ę kontenerową na AKS w środowisku deweloperskim 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 nowej puli węzłów do istniejącego klastra

Dodaj pulę węzłów z odpowiednią wersją systemu operacyjnego do istniejącego klastra:

Pule węzłów systemu Windows Server 2025 wymagają obrazu z włączoną obsługą standardu FIPS. Podczas dodawania puli węzłów Windows Server 2025 dołącz --enable-fips-image (Azure CLI) lub -EnableFIPS (Azure PowerShell).

Aktualizowanie pliku YAML

Selektor węzłów jest najbardziej typową i zalecaną opcją umieszczania zasobników systemu Windows w węzłach systemu Windows.

  1. 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ł Windows i umieszcza pod na tym węźle (zgodnie z innymi regułami planowania). Podczas aktualizacji wersji systemu operacyjnego należy zapewnić umieszczenie na węźle z systemem Windows oraz na węźle z najnowszą wersją systemu operacyjnego. Aby to osiągnąć, jedną z opcji jest użycie innej adnotacji. Zaktualizuj <OSSKU>, aby dopasować wartość ossku do żądanej wersji systemu Windows, na przykład Windows2025.

          nodeSelector:
            "kubernetes.azure.com/os-sku": <OSSKU>
    
  2. 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 następują żadne inne zmiany konfiguracji poza nodeSelector oraz obrazem kontenera.

Stosowanie zaktualizowanego pliku YAML do istniejącego obciążenia

  1. 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.33.12   10.240.0.4     <none>        Ubuntu 22.04.5 LTS               5.15.0-1116-azure  containerd://1.7.33-1
    akspoolws000000                     Ready    agent   3h15m   v1.33.12   10.240.0.208   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000001                     Ready    agent   3h17m   v1.33.12   10.240.0.239   <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akspoolws000002                     Ready    agent   3h17m   v1.33.12   10.240.1.14    <none>        Windows Server 2022 Datacenter   10.0.20348.825     containerd://1.6.6+azure
    akswspool000000                     Ready    agent   5h37m   v1.33.12   10.240.0.115   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    akswspool000001                     Ready    agent   5h37m   v1.33.12   10.240.0.146   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    akswspool000002                     Ready    agent   5h37m   v1.33.12   10.240.0.177   <none>        Windows Server 2025 Datacenter   10.0.26100.32995    containerd://2.0.4+azure
    
  2. 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ńcowania istniejących zasobników i wdrażania nowych zasobników w węzłach z adnotacją nodeSelector .

  3. Sprawdź stan wdrożenia przy użyciu kubectl get pods polecenia .

    kubectl get pods -o wide
    

    W poniższym przykładzie dane wyjściowe pokazują zasobniki w przestrzeni nazw default.

    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. gMSA używa tajnego (konta użytkownika i hasła), dzięki czemu węzeł z uruchomionym zasobnikiem Windows może uwierzytelnić kontener względem Microsoft Entra ID. Aby uzyskać dostęp do tego sekretu 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ż dla każdej puli węzłów konfigurowane są Managed Identities, a pod znajduje się teraz w nowej puli węzłów, należy zaktualizować tę 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 zarządzanych tożsamości dla innych podów lub grup 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.

Dalsze kroki

W tym artykule dowiedziałeś się, jak uaktualnić wersję 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).