Atualizar a versão do sistema operacional (SO) para suas cargas de trabalho do Windows do Serviço Kubernetes do Azure (AKS)

Quando atualizar a versão do sistema operativo de uma carga de trabalho Windows em execução no Azure Kubernetes Service (AKS), utilize um dos seguintes métodos de migração:

  • Migração no local: Atualize o SKU do SO num pool de nós existente para migrar do Windows Server 2022 para o Windows Server 2025.
  • Migração manual: Cria um novo pool de nós com a versão desejada do Windows Server OS, move as cargas de trabalho para o novo pool de nós e elimina o pool antigo.

Quando uma nova versão do sistema operacional Windows Server é lançada, o AKS está comprometido em suportá-la. Recomendamos que você atualize para a versão mais recente para aproveitar as correções, melhorias e novas funcionalidades. O AKS fornece um ciclo de vida de suporte de cinco anos para cada versão do Windows Server, começando com o Windows Server 2022. Durante esse período, o AKS lança uma nova versão que suporta uma versão mais recente do sistema operacional Windows Server para você atualizar. Após o término do ciclo de vida de cinco anos, você deve migrar cargas de trabalho para versões suportadas mais recentes para garantir compatibilidade, atualizações de segurança e suporte contínuo do AKS.

Importante

A partir de 30 de junho de 2028, o Azure Kubernetes Service (AKS) deixa de suportar pools de nós do Windows Server 2022. O Windows Server 2022 não é suportado na versão 1.37 do Kubernetes e posteriores. A partir de 30 de junho de 2029, o AKS irá remover todas as imagens de nós existentes para o Windows Server 2022, o que significa que as operações de escalabilidade irão falhar. Para mais informações sobre esta descontinuação, consulte o problema do GitHub e o anúncio de descontinuação do Azure Updates. Para se manter informado sobre anúncios e atualizações, siga as notas de atualização do AKS.

As seguintes limitações aplicam-se à migração de versões do Windows Server OS:

  • A atualização do pool de nós para migrar de uma versão do Windows Server para outra é suportada apenas para migração do Windows Server 2022 para o Windows Server 2025, utilizando a aks-preview extensão do CLI do Azure versão 22.0.0b6 ou posterior. Para todas as outras migrações de versão do SO Windows Server, crie um novo conjunto de nós.
  • Versões diferentes do Windows Server não podem coexistir no mesmo cluster de nós no AKS. Se criares um novo pool de nós para alojar a nova versão do sistema operativo, certifica-te de que garantes que as permissões e os acessos do pool de nós anterior correspondem aos do novo pool de nós.
  • O Windows Server 2025 é suportado a partir da versão 1.32.0 do Kubernetes.

Pré-requisitos

  • Atualize a instrução FROM no seu Dockerfile para a nova versão do sistema operativo.
  • Verifique seu aplicativo e verifique se o aplicativo contêiner funciona na nova versão do sistema operacional.
  • Implante o aplicativo de contêiner verificado no AKS em um ambiente de desenvolvimento ou teste.
  • Anote o nome da nova imagem ou tag para uso neste artigo.
  • Para migração no local do Windows Server 2022 para o Windows Server 2025, instale ou atualize a aks-preview extensão CLI do Azure para a versão 22.0.0b6 ou posterior.

Nota

Para saber como criar um Dockerfile para cargas de trabalho do Windows, consulte Dockerfile no Windows e Otimizar o Dockerfiles do Windows.

Importante

As funcionalidades de pré-visualização do AKS estão disponíveis num regime de autosserviço e de adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de pré-visualização do AKS são apenas parcialmente abrangidas pelo suporte ao cliente, na medida do possível. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Instala a extensão aks-preview CLI do Azure

  • Para instalar a extensão aks-preview, execute o seguinte comando:

Migração no local do Windows Server 2022 para o Windows Server 2025

Pode migrar um pool de nós existente do Windows Server 2022 para o Windows Server 2025 no local, atualizando o SKU do sistema operativo no pool de nós existente com o az aks nodepool update comando. Este caminho de migração utiliza a aks-preview extensão CLI do Azure versão 22.0.0b6 ou posterior. O cluster deve correr as versões Kubernetes 1.32 a 1.36, onde ambas as versões do sistema operativo são suportadas.

Considerações de migração no local

Considere os seguintes detalhes antes de migrar um pool de nós do Windows Server 2022 para o Windows Server 2025:

  • O Windows Server 2025 utiliza imagens com FIPS ativado por defeito. Se o seu conjunto de nós do Windows Server 2022 ainda não utilizar uma imagem com FIPS ativado, inclua --enable-fips-image ao executar o comando de atualização.
  • O comando update desencadeia uma reimagem automática do pool de nós existente.
  • O Windows Server 2025 utiliza VMs da Geração 2 por defeito. Não precisas de ter um pool de nós já existente do Windows Server 2022 de 2.ª geração para migrar no local. São suportados pools de nós padrão do Windows Server 2022containerd.
  • Se o tamanho existente da VM suportar a Geração 2, o AKS pode selecionar uma imagem Windows Server 2025 Geração 2 durante a migração. Esta seleção predefinida da imagem pode afetar a compatibilidade de imagens em algumas configurações.

A tabela seguinte descreve quais as configurações de origem que suportam migração no local com o comando update. Para configurações não suportadas, use a migração manual em vez disso.

Configuração existente Suporte Result
Imagem padrão do Windows Server 2022 containerd Geração 1 com uma dimensão de VM exclusiva da Geração 1 Sim Migra para Windows Server 2025 Geração 1.
Imagem padrão do Windows Server 2022 containerd Geração 1 com um tamanho de VM compatível com a Geração 2 Sim Migra para Windows Server 2025 Geração 2.
Imagem padrão do Windows Server 2022 containerd Geração 2 com um tamanho de VM compatível com a Geração 2 Sim Migra para Windows Server 2025 Geração 2.

Atualizar o pool de nós existente do Windows Server 2022 para o Windows Server 2025

  1. Atualize o SKU do SO do conjunto de nós para Windows2025 utilizando o comando az aks nodepool update.

    az aks nodepool update \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --os-sku Windows2025 \
        --enable-fips-image
    
  2. Verifique se um nó no conjunto de nós atualizado utiliza o Windows2025 SKU do sistema operativo e uma imagem do Windows Server 2025 ao usar o comando kubectl describe node.

    kubectl describe node <node-name>
    

    O exemplo condensado seguinte mostra o Windows2025 rótulo SKU do SO e a imagem do SO Windows Server 2025:

    Labels:
      kubernetes.azure.com/os-sku=Windows2025
      kubernetes.io/os=windows
    ...
    System Info:
      OS Image:                   Windows Server 2025 Datacenter
      Container Runtime Version:  containerd://2.0.4+azure
    

Migração manual para um novo pool de nós

A migração manual utiliza um novo pool de nós em vez de atualizar o pool de nós existente. Use migração manual para migrações de versões do Windows Server OS que não suportem migração no local, ou quando a sua configuração de origem não for suportada para migração no local. Para migrar manualmente, crie um novo pool de nós com a versão desejada do Windows Server OS e mude as suas cargas de trabalho para o novo pool de nós.

Adicionar um novo pool de nós a um cluster existente

Adicione um pool de nós com a versão desejada do sistema operacional ao cluster existente:

Os pools de nós do Windows Server 2025 requerem uma imagem compatível com FIPS. Quando adicionar um pool de nós do Windows Server 2025, inclua --enable-fips-image (CLI do Azure) ou -EnableFIPS (Azure PowerShell).

Atualizar o arquivo YAML

Node Selector é a opção mais comum e recomendada para a colocação de pods Windows em nós Windows.

  1. Adicione o Seletor de Nó ao seu arquivo YAML adicionando a seguinte anotação:

          nodeSelector:
            "kubernetes.io/os": windows
    

    A anotação localiza qualquer nó disponível do Windows e coloca o pod nesse nó (seguindo todas as outras regras de agendamento). Ao atualizar sua versão do sistema operacional, você precisa impor o posicionamento em um nó do Windows e um nó executando a versão mais recente do sistema operacional. Para conseguir isso, uma opção é usar uma anotação diferente. Atualize <OSSKU> para corresponder à ossku da sua versão desejada do sistema operativo Windows, por exemplo Windows2025.

          nodeSelector:
            "kubernetes.azure.com/os-sku": <OSSKU>
    
  2. Depois de atualizar o nodeSelector no arquivo YAML, você também precisa atualizar a imagem do contêiner que deseja usar. Você pode obter essas informações da etapa anterior na qual você criou uma nova versão do aplicativo em contêiner alterando a FROM instrução em seu Dockerfile.

    Nota

    Você deve usar o mesmo arquivo YAML usado para implantar inicialmente o aplicativo. Isto garante que não existam outras alterações de configuração além de nodeSelector e da imagem do contentor.

Aplicar o arquivo YAML atualizado à carga de trabalho existente

  1. Exiba os nós no cluster usando o kubectl get nodes comando.

    kubectl get nodes -o wide
    

    A saída de exemplo seguinte mostra todos os nós do cluster, incluindo o novo pool de nós que criou e os pools de nós existentes:

    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. Aplique o arquivo YAML atualizado à carga de trabalho existente usando o kubectl apply comando e especifique o nome do arquivo YAML.

    kubectl apply -f <filename>
    

    O exemplo de saída a seguir mostra um status configurado para a implantação:

    deployment.apps/sample configured
    service/sample unchanged
    

    Neste ponto, o AKS inicia o processo de terminar os pods existentes e de implantar novos pods nos nós que têm a anotação nodeSelector.

  3. Verifique o status da implantação usando o kubectl get pods comando.

    kubectl get pods -o wide
    

    O exemplo de saída a seguir mostra os pods no default namespace:

    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>
    

Atualização da configuração de segurança e autenticação

Se você estiver usando Contas de Serviço Gerenciado de Grupo (gMSA), precisará atualizar a configuração de Identidade Gerenciada para o novo pool de nós. O gMSA usa um segredo (conta de utilizador e palavra-passe) para que o nó que executa o pod Windows possa autenticar o contentor junto do Microsoft Entra ID. Para acessar esse segredo no Cofre da Chave do Azure, o nó usa uma Identidade Gerenciada que permite que o nó acesse o recurso. Como as Identidades Gerenciadas são configuradas por pool de nós e o pod agora reside em um novo pool de nós, você precisa atualizar essa configuração. Para obter mais informações, consulte Habilitar contas de serviço gerenciado de grupo (GMSA) para seus nós do Windows Server no cluster do Serviço Kubernetes do Azure (AKS).

O mesmo princípio se aplica às Identidades Gerenciadas para qualquer outro pool de pods ou nós ao acessar outros recursos do Azure. Você precisa atualizar qualquer acesso que a Identidade Gerenciada forneça para refletir o novo pool de nós. Para exibir atividades de atualização e entrada, consulte Como exibir a atividade de Identidade Gerenciada.

Próximos passos

Neste artigo, você aprendeu como atualizar a versão do sistema operacional para cargas de trabalho do Windows no AKS. Para saber mais sobre cargas de trabalho do Windows no AKS, consulte Implantar um aplicativo de contêiner do Windows no Serviço Kubernetes do Azure (AKS).