Os pools de nós do Windows Server não foram atualizados para Gen2 durante a atualização da imagem do nó do cluster
Este artigo discute como solucionar problemas de um cenário em que os pools de nós do Windows Server não são atualizados automaticamente de VMs (máquinas virtuais) Gen1 para Gen2 quando uma imagem de nó de cluster é atualizada no AKS (Serviço de Kubernetes do Microsoft Azure).
Observação
Esse cenário não se aplica a VMs Gen2 em pools de nós do Linux.
Pré-requisitos
Sintomas
Os pools de nós existentes do Windows Server não são atualizados da 1ª para a 2ª geração quando você atualiza a imagem do nó usando um dos seguintes métodos na CLI do Azure:
Uma atualização de cluster inteira (usando o comando az aks upgrade )
Uma atualização de pool de nós específica (usando o comando az aks nodepool upgrade )
Motivo
Causa 1: os pools de nós existentes não são atualizados automaticamente para VMs Gen2
Por design, uma atualização de imagem de nó não dá suporte à atualização ou atualização de pools de nós existentes. Os az aks upgrade
comandos e az aks nodepool upgrade
atualizam apenas a imagem do nó (para uma versão posterior da imagem do nó). Esses comandos não atualizam a geração de VM correspondente.
Causa 2: a atualização do cluster para o Kubernetes versão 1.25 ou uma versão posterior atualiza apenas o sistema operacional
Quando você atualiza seu cluster para o Kubernetes versão 1.25 ou posterior, somente o sistema operacional (SO) é atualizado (para Windows Server 2022). Os pools de nós existentes não são afetados. O conjunto de dimensionamento de VMs associado conterá VMs que têm a mesma VM Gen1.
Causa 3: cluster atualizado e novo pool de nós criado usando Windows Server 2022 sem especificar um tamanho de VM válido
Depois de atualizar o cluster para o Kubernetes versão 1.25 ou posterior, especifique Windows Server 2022 como o sistema operacional a ser usado nas VMs do pool de nós. No entanto, as VMs não usam uma referência de imagem de nó Gen2 devido a um dos seguintes motivos:
Você não especifica um tamanho de VM e o tamanho padrão da VM na região não dá suporte a VMs Gen2.
Você especifica um tamanho de VM somente Gen1.
Quando você atualiza o sistema operacional padrão do Windows Server 2019 (Windows2019
) para o Windows Server 2022 (Windows2022
), os pools de nós existentes não são atualizados automaticamente para uma geração de VM diferente.
Solução
Atualize o cluster e crie um novo pool de nós do Windows Server que dê suporte a tamanhos de VM Gen2 nesse cluster de acordo com as diretrizes a seguir.
Versão de atualização do cluster do Kubernetes | Diretrizes de criação de cluster |
---|---|
1.25 ou uma versão posterior | Ao executar o comando az aks create para criar um cluster, defina o --node-vm-size parâmetro como um tamanho de VM Gen2. |
Versão anterior a 1.25 | Ao executar o comando az aks create para criar um cluster, defina o valor do --os-sku parâmetro como Windows2022 e defina o valor do --node-vm-size parâmetro como um tamanho de VM Gen2. |
Observação
Se você especificar um tamanho de VM Gen2 e o sistema operacional como Windows Server 2019, receberá um código de ErrorCode_Windows2019NotSupportedWithGen2VM
erro acompanhado pela seguinte mensagem de erro:
<virtual-machine-size> é uma VM somente de 2ª geração. O Windows2019 não dá suporte a VMs Gen 2. No entanto, você pode selecionar um tamanho de VM Gen 1 ou definir os_sku para 2022.
Para evitar esse problema, escolha uma das seguintes opções ao criar o cluster:
Escolha um tamanho de VM Gen1 para usar junto com o Windows Server 2019.
Defina o SKU do sistema operacional como Windows Server 2022 para usar junto com sua VM Gen2.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.