Udostępnij za pośrednictwem


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.

  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ł 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
    
  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 ma żadnych innych zmian konfiguracji oprócz obrazu kontenera nodeSelector i .

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.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
    
  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ńczenie istniejących zasobników i wdrażanie nowych zasobników w węzłach systemu Windows Server 2022.

  3. 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).