Sdílet prostřednictvím


Upgrade verze operačního systému pro úlohy Azure Kubernetes Service (AKS) Pro Windows

Při upgradu verze operačního systému spuštěné úlohy Windows ve službě Azure Kubernetes Service (AKS) musíte nasadit nový fond uzlů, aby se zajistilo, že verze Windows odpovídají jednotlivým fondům uzlů. Tento článek popisuje postup upgradu verze operačního systému pro úlohy Windows v AKS. I když se tento příklad zaměřuje na upgrade z Windows Serveru 2019 na Windows Server 2022, můžete použít stejný postup pro upgrade z jakékoli verze Windows Serveru na jinou.

Podpora verzí operačního systému Windows Server

Po vydání nové verze operačního systému Windows Server se AKS zavazuje podporovat a doporučovat upgrade na nejnovější verzi, abyste mohli využívat opravy, vylepšení a nové funkce. AKS poskytuje pětiletý životní cyklus podpory pro každou verzi Windows Serveru počínaje Systémem Windows Server 2022. Během této doby bude AKS vydávat novou verzi, která podporuje novější verzi operačního systému Windows Server, na kterou můžete upgradovat.

Poznámka:

  • Windows Server 2019 se vyřadí, jakmile Kubernetes verze 1.32 dosáhne konce životnosti (EOL). Další informace najdete v poznámkách k verzi AKS.
  • Windows Server 2022 se vyřadí, jakmile Kubernetes verze 1.34 dosáhne konce životnosti (EOL). Další informace najdete v poznámkách k verzi AKS.

Omezení

Windows Server 2019 a Windows Server 2022 nemůžou existovat ve stejném fondu uzlů v AKS. Abyste mohli hostovat novou verzi operačního systému, musíte vytvořit nový fond uzlů. Je důležité, abyste při shodě s oprávněními a přístupem k předchozímu fondu uzlů odpovídali novému fondu uzlů.

Než začnete

  • FROM Aktualizujte příkaz v souboru Dockerfile na novou verzi operačního systému.
  • Zkontrolujte aplikaci a ověřte, že aplikace kontejneru funguje na nové verzi operačního systému.
  • Nasaďte ověřenou aplikaci kontejneru v AKS do vývojového nebo testovacího prostředí.
  • Poznamenejte si název nebo značku nové image pro použití v tomto článku.

Poznámka:

Informace o vytvoření souboru Dockerfile pro úlohy Windows najdete v souboru Dockerfile ve Windows a optimalizaci souborů Dockerfile systému Windows.

Přidání fondu uzlů s Windows Serverem 2022 do existujícího clusteru

  • Přidejte fond uzlů systému Windows Server 2022 do existujícího clusteru.

Aktualizace souboru YAML

Výběr uzlu je nejběžnější a doporučenou možností pro umístění podů Windows na uzlech Windows.

  1. Přidejte do souboru YAML selektor uzlu přidáním následující poznámky:

          nodeSelector:
            "kubernetes.io/os": windows
    

    Poznámka najde jakýkoli dostupný uzel Windows a umístí pod na tento uzel (podle všech ostatních pravidel plánování). Při upgradu z Windows Serveru 2019 na Windows Server 2022 je potřeba vynutit umístění na uzlu Windows a uzel s nejnovější verzí operačního systému. K tomuto účelu je jednou z možností použití jiné poznámky:

          nodeSelector:
            "kubernetes.azure.com/os-sku": Windows2022
    
  2. Po aktualizaci nodeSelector v souboru YAML je také potřeba aktualizovat image kontejneru, kterou chcete použít. Tyto informace můžete získat z předchozího kroku, ve kterém jste vytvořili novou verzi kontejnerizované aplikace změnou FROM příkazu v souboru Dockerfile.

Poznámka:

Měli byste použít stejný soubor YAML, který jste použili k počátečnímu nasazení aplikace. Tím se zajistí, že se kromě image kontejneru a image kontejneru nodeSelector nezmění žádná jiná konfigurace.

Použití aktualizovaného souboru YAML u existující úlohy

  1. Pomocí příkazu zobrazte uzly v clusteru kubectl get nodes .

    kubectl get nodes -o wide
    

    Následující příklad výstupu ukazuje všechny uzly v clusteru, včetně nového fondu uzlů, který jste vytvořili, a stávajících fondů uzlů:

    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. Použijte aktualizovaný soubor YAML na existující úlohu pomocí kubectl apply příkazu a zadejte název souboru YAML.

    kubectl apply -f <filename>
    

    Následující příklad výstupu ukazuje nakonfigurovaný stav nasazení:

    deployment.apps/sample configured
    service/sample unchanged
    

    V tomto okamžiku AKS spustí proces ukončení existujících podů a nasazení nových podů do uzlů Windows Serveru 2022.

  3. Pomocí příkazu zkontrolujte stav nasazení kubectl get pods .

    kubectl get pods -o wide
    

    Následující příklad výstupu ukazuje pody v default oboru názvů:

    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>
    

Důležité informace o zabezpečení a ověřování

Pokud používáte skupinové účty spravované služby (gMSA), musíte aktualizovat konfiguraci spravované identity pro nový fond uzlů. GMSA používá tajný kód (uživatelský účet a heslo), aby uzel, na kterém běží pod Windows, mohl ověřit kontejner na základě ID Microsoft Entra. Pro přístup k tomuto tajnému kódu ve službě Azure Key Vault používá uzel spravovanou identitu, která uzlu umožňuje přístup k prostředku. Vzhledem k tomu, že spravované identity jsou nakonfigurované na fond uzlů a pod se teď nachází v novém fondu uzlů, musíte tuto konfiguraci aktualizovat. Další informace najdete v tématu Povolení skupinových účtů spravované služby (GMSA) pro uzly Windows Serveru v clusteru Azure Kubernetes Service (AKS).

Stejný princip se vztahuje na spravované identity pro jakýkoli jiný fond podů nebo uzlů při přístupu k jiným prostředkům Azure. Potřebujete aktualizovat veškerý přístup, který spravovaná identita poskytuje, aby odrážel nový fond uzlů. Pokud chcete zobrazit aktivity aktualizace a přihlašování, podívejte se, jak zobrazit aktivitu spravované identity.

Další kroky

V tomto článku jste zjistili, jak upgradovat verzi operačního systému pro úlohy Windows v AKS. Další informace o úlohách Windows v AKS najdete v tématu Nasazení aplikace typu kontejner pro Windows ve službě Azure Kubernetes Service (AKS).