Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ao atualizar a versão do sistema operativo de uma carga de trabalho do Windows em execução no Azure Kubernetes Service (AKS), é necessário implementar um novo conjunto de nós para garantir que as versões do Windows coincidam em cada conjunto de nós. Este artigo descreve as etapas para atualizar a versão do sistema operacional para cargas de trabalho do Windows no AKS.
Suporte à versão do sistema operacional Windows Server
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.
Limitações
- Não há suporte para a atualização do pool de nós para migrar de uma versão do Windows Server para outra.
- Versões diferentes do Windows Server não podem coexistir no mesmo cluster de nós no AKS. Você precisa criar um novo pool de nós para hospedar a nova versão do sistema operacional. É importante que as permissões e o acesso do pool de nós anterior correspondam aos do novo.
- O Windows Server 2025 é suportado a partir da versão 1.32 do Kubernetes.
Antes de começar
- Atualize a instrução
FROMno 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.
Nota
Para saber como criar um Dockerfile para cargas de trabalho do Windows, consulte Dockerfile no Windows e Otimizar o Dockerfiles do Windows.
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:
- Use a CLI para adicionar um pool de nós do Windows a um cluster existente.
- Use Portal para adicionar um pool de nós do Windows a um cluster existente.
- Use o PowerShell para adicionar um pool de nós do Windows a um cluster existente.
- Use o Terraform para adicionar um pool de nós do Windows a um 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.
Adicione o Seletor de Nó ao seu arquivo YAML adicionando a seguinte anotação:
nodeSelector: "kubernetes.io/os": windowsA 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 exemploWindows2025.nodeSelector: "kubernetes.azure.com/os-sku": <OSSKU>Depois de atualizar o
nodeSelectorno 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 aFROMinstruçã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
nodeSelectore da imagem do contentor.
Aplicar o arquivo YAML atualizado à carga de trabalho existente
Exiba os nós no cluster usando o
kubectl get nodescomando.kubectl get nodes -o wideA 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+azureAplique o arquivo YAML atualizado à carga de trabalho existente usando o
kubectl applycomando 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 unchangedNeste 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.Verifique o status da implantação usando o
kubectl get podscomando.kubectl get pods -o wideO exemplo de saída a seguir mostra os pods no
defaultnamespace: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>
Considerações sobre 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).