Atualizações do pool de nós azul-verde no AKS (Serviço de Kubernetes do Azure) (versão preliminar)

As atualizações azul-verde permitem que você atualize os pools de nós do AKS ao adicionar novos nós verdes com a configuração atualizada, incluindo a versão do Kubernetes e da imagem do nó, ao pool de nós existente, enquanto os nós azuis originais continuam em execução. Essa estratégia permite testar e validar a nova configuração antes de se comprometer com a nova versão, com a capacidade de reverter rapidamente se surgirem problemas.

Este artigo explica quando usar atualizações azul-verde, como o processo funciona, opções de configuração e considerações para usar essa estratégia de atualização.

Quando usar atualizações azul-verde

Observação

Tenha em mente que as atualizações azul-verde exigem o dobro da capacidade dos nós durante o processo de atualização, o que pode levar a maiores custos e requisitos de recursos.

Considere atualizações azul-verde quando:

  • Você precisa de testes granulares e verificação de cargas de trabalho em lote por lote.
  • Você precisa validar as novas configurações do nó antes de alternar o tráfego de produção.
  • Você deseja a capacidade de reversão instantânea sem reprovisionar nós.
  • Você está atualizando cargas de trabalho de produção críticas que não podem tolerar interrupções.
  • Você precisa testar a compatibilidade do aplicativo com as novas versões do Kubernetes.

Se você estiver usando um processo manual de implantação azul-verde para atualizações de pool de nós e quiser automatizar esse fluxo de trabalho, considere usar as atualizações de pool de nós azul-verde do AKS. Para obter mais informações sobre o processo manual de atualização azul-verde, consulte atualizações do pool de nós azul-verde manuais.

Quando usar atualizações contínuas padrão

Atualizações sem interrupção padrão podem ser mais apropriadas nos seguintes cenários:

  • Ambientes de desenvolvimento ou teste com tolerância a tempo de inatividade.
  • Implantações sensíveis a custos em que a duplicação temporária é proibitiva.
  • Aplicativos simples sem estado com bom gerenciamento de interrupções.
  • Ambientes com cota ou capacidade disponíveis limitadas.

Pré-requisitos

  • Cota suficiente para duplicar a capacidade do pool de nós.
  • CLI do Azure versão 2.64.0 ou superior. Localize sua versão usando o az --version comando. Se precisar instalar ou atualizar, consulte Instalar CLI do Azure.
  • A extensão aks-preview CLI do Azure instalada e atualizada para a versão mais recente.
  • Versão da API 2025-08-02-preview ou posterior.
  • Autoscaler de cluster configurado (recomendado, mas não obrigatório).

Instalar a extensão aks-preview CLI do Azure

Importante

As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Instale ou atualize a extensão aks-preview usando os comandos az extension add e az extension update.

# Install the aks-preview extension
az extension add --name aks-preview

# Update the aks-preview extension
az extension update --name aks-preview

Recursos suportados para atualizações azul-verde

Atualmente, as atualizações azul-verde dão suporte aos seguintes recursos:

Limitações e considerações de atualização azul-verde

Atualmente, as atualizações azul-verde não dão suporte aos seguintes recursos:

Tenha as seguintes considerações em mente ao usar atualizações azul-verde:

Requisitos de recursos Considerações de complexidade Fatores de tempo
* Requer o dobro da capacidade do nó durante o processo de atualização, o que leva a um aumento nos custos de infraestrutura.
* Você precisa de cota de computação adicional em sua assinatura do Azure para acomodar a duplicação temporária do número de nós.
* Você pode encontrar limites de capacidade regionais durante os períodos de pico de uso.
* Requer planejamento cuidadoso para cargas de trabalho com estado, a fim de garantir a consistência dos dados durante a migração.
* Requer monitoramento extra para os nós azul e verde durante o período de transição.
* Duração de atualização geral mais longa em comparação com atualizações no local.
* O período de validação adiciona tempo antes do corte final.

Fluxo de trabalho de atualização azul-verde

O processo de atualização azul-verde cria um ambiente paralelo para transições seguras entre versões do pool de nós. Você pode atualizar e comprometer-se com o novo pool verde após a validação ou atualizar e reverter para o pool azul original caso encontre problemas.

Cenário de atualização e confirmação

O diagrama a seguir ilustra o fluxo de trabalho de atualização e confirmação:

Diagrama mostrando o fluxo de trabalho do cenário de atualização e confirmação.

O processo de atualização e confirmação é o seguinte:

  1. Cordon blue nodes: os nós azuis existentes são marcados como não agendáveis.
  2. Adicionar nós verdes: novos nós verdes com a configuração atualizada são adicionados ao pool de nós existente.
  3. Operação paralela: Os nós azul e verde são executados simultaneamente no mesmo conjunto de nós.
  4. Migração gradual: as cargas de trabalho são progressivamente drenadas de nós azuis e reagendadas para nós verdes em lotes.
  5. Validar nós verdes: monitorar e testar cargas de trabalho nos novos nós durante a migração.
  6. Transição completa: após o período de validação final, os nós azuis são excluídos e os nós verdes se tornam primários.

Cenário de atualização e reversão

O diagrama a seguir ilustra o workflow de atualização e reversão:

Diagrama mostrando o fluxo de trabalho do cenário de atualização e reversão.

O processo de atualização e reversão é o seguinte:

  1. Cordon blue nodes: os nós azuis existentes são marcados como não agendáveis.
  2. Adicionar nós verdes: novos nós verdes com a configuração atualizada são adicionados ao pool de nós existente.
  3. Operação paralela: Os nós azul e verde são executados simultaneamente no mesmo conjunto de nós.
  4. Detectar problemas: identifique problemas durante a validação em nós verdes .
  5. Executar rollback: desvincular nós azuis, esvaziar nós verdes e migrar cargas de trabalho de volta para nós azuis.
  6. Estado de restauração: os nós verdes são excluídos e o pool de nós retorna à configuração original.

Escolha sua estratégia de atualização

Ao criar ou atualizar um pool de nós do AKS, você pode especificar a estratégia de atualização (upgradeStrategy) a ser usada. As estratégias disponíveis incluem:

Estratégia DESCRIÇÃO
Rolling (padrão) Atualização sem interrupção padrão em que os nós são atualizados um a um.
BlueGreen Adiciona novos nós verdes com a configuração atualizada ao pool de nós existente, mantendo os nós azuis originais em execução.

Personalizar propriedades de atualização azul-verde

Você pode personalizar as seguintes propriedades do upgrade azul-verde (NodePoolBlueGreenUpgradeSettings):

Propriedade DESCRIÇÃO Valores permitidos Valor padrão
drainBatchSize Número ou porcentagem de nós a serem drenados em cada lote durante a atualização. A porcentagem é calculada com base no número total de nós azuis no início da atualização. Os nós fracionários são arredondados para cima. Inteiro (por exemplo, 5) ou percentual (por exemplo, 50%). Deve ser um valor diferente de zero. 10%
drainTimeoutInMinutes Tempo máximo (em minutos) para aguardar que os pods sejam encerrados corretamente em cada nó antes de falhar a atualização. Honra os orçamentos de interrupção do pod durante esse tempo de espera. Se excedido, a atualização falhará. Inteiro entre 1 e 1440 (24 horas). 30 minutos
batchSoakDurationInMinutes Tempo de pausa (em minutos) entre a drenagem de lotes de nós para permitir a observação e validação. Inteiro entre 0 e 1440 (24 horas). 15 minutos
finalSoakDurationInMinutes Tempo de espera (em minutos) após todos os nós serem drenados antes de remover os nós antigos. Fornece um período de validação final antes de se comprometer com a atualização. As operações de reversão só estão disponíveis durante este período final de imersão. Após o término desse período e a exclusão do pool azul, a reversão não será mais possível. Inteiro entre 0 e 10080 (sete dias). 60 minutos

Criar um pool de nós com configurações de atualização azul-verde padrão

  • Crie um pool de nós com a estratégia de atualização azul-verde padrão e as configurações usando o az aks nodepool add comando com o --upgrade-strategy parâmetro definido como bluegreen. O exemplo a seguir cria um novo pool de nós nomeado myNodePool no cluster myAKSCluster do AKS dentro do grupo de recursos myResourceGroup:

    az aks nodepool add \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --upgrade-strategy bluegreen
    

Crie um pool de nós com configurações personalizadas de atualização azul-verde

  • Crie um pool de nós com configurações personalizadas de atualização azul-verde usando o comando az aks nodepool add com o parâmetro --upgrade-strategy definido como bluegreen e defina as configurações de atualização azul-verde personalizadas desejadas. O exemplo a seguir cria um novo pool de nós nomeado myNodePool no cluster do AKS myAKSCluster dentro do grupo myResourceGroupde recursos, com configurações personalizadas de atualização azul-verde:

    az aks nodepool add \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --upgrade-strategy bluegreen \
        --drain-timeout-bg 5 \
        --batch-soak-duration 5 \
        --drain-batch-size 50% \
        --final-soak-duration 180
    

Iniciar uma atualização azul-verde para um pool de nós existente

Importante

Ao retomar uma atualização pausada, você pode atualizar as configurações azul-verde, mas não pode alterar a estratégia de atualização ou a versão do Kubernetes.

  • Inicie uma atualização azul-verde para um pool de nós existente usando o comando az aks nodepool upgrade com o parâmetro --kubernetes-version definido para a versão desejada. Você pode iniciar uma atualização azul-verde para um pool de nós que já esteja usando a estratégia azul-verde ou para um pool de nós que ainda não tenha sido configurado com a estratégia azul-verde. Os exemplos a seguir demonstram ambos os cenários:

    # Start a blue-green upgrade for an existing node pool already using blue-green strategy
    az aks nodepool upgrade \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --kubernetes-version <kubernetes-version>
    
    # Start a blue-green upgrade for an existing node pool not yet using blue-green strategy
    az aks nodepool upgrade \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --kubernetes-version <kubernetes-version> \
        --upgrade-strategy bluegreen
    

Pausar ou cancelar uma atualização azul-verde

  • Pause ou cancele uma atualização azul-verde em andamento usando o comando az aks nodepool operation-abort. O exemplo a seguir pausa ou cancela a atualização azul-verde para o pool de nós nomeado myNodePool no cluster do AKS myAKSCluster dentro do grupo de recursos myResourceGroup:

    az aks nodepool operation-abort \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup
    

Reverter uma implantação de atualização azul-verde

Depois que uma atualização azul-verde em andamento for cancelada, a reversão poderá ser iniciada usando o az aks nodepool rollback comando.

A reversão só está disponível durante o período de imersão final, conforme descrito na propriedade finalSoakDurationInMinutes.

O exemplo a seguir executa uma reversão da atualização azul-verde para o pool de nós nomeado myNodePool, no cluster do AKS myAKSCluster, dentro do grupo de recursos myResourceGroup.

az aks nodepool rollback \
    --name myNodePool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

Perguntas frequentes (FAQs)

As atualizações azul-verde suportam a configuração maxUnavailable?

Não, a maxUnavailable configuração não é aplicável a atualizações azul-verde. Novos nós verdes são adicionados ao pool de nós existente junto com os nós azuis existentes, garantindo que todos os nós originais permaneçam disponíveis durante o processo de atualização.

As atualizações azul-verde podem ser usadas para atualizações do pool de nós além do Kubernetes e da versão da imagem do nó?

Não, a estratégia de atualização azul-verde é específica para o Kubernetes e para atualizações de versão de imagens de nós neste momento. Outras alterações, como rotação de certificado ou kubelet e alterações de configuração do sistema operacional, não podem ser executadas por meio da estratégia de atualização azul-verde.

Quais versões do Kubernetes são compatíveis com atualizações azul-verde?

As atualizações azul-verde funcionam com todas as versões do Kubernetes com suporte do AKS, incluindo versões com suporte da comunidade e LTS (Suporte de Longo Prazo), desde que você use a versão 2025-08-02-preview da API ou posterior.

Posso usar o canal de patch de segurança automático com atualizações azul-verde?

Sim, desde que a estratégia de atualização do pool de nós esteja configurada para usar azul-verde. Quando configurados, os patches de segurança seguem o processo de atualização azul-verde em vez do mecanismo de atualização sem interrupção padrão.

O que acontece com os volumes persistentes durante as atualizações azul-verde?

Os volumes persistentes permanecem acessíveis. Os pods são drenados e reprogramados com tranquilidade, mantendo seus anexos de volume.

Posso realizar atualizações azul-verde em vários conjuntos de nós simultaneamente?

Sim, diferentes conjuntos de nós podem passar por atualizações blue-green em paralelo, mas cada conjunto só pode ter uma atualização ativa. Atualmente, você não pode controlar a ordem das atualizações em vários pools.

Como as atualizações azul-esverdeadas lidam com configurações específicas de nós, como taints e rótulos?

Todas as configurações dos nós, incluindo taints, rótulos e anotações, são replicadas automaticamente para o pool verde.

Qual é o impacto do custo das atualizações azul-verde?

Você será cobrado tanto pelos nós azuis originais quanto pelos novos nós verdes durante a janela de atualização, portanto, certifique-se de planejar para a duplicação temporária de custos durante o período de transição.

O que acontece durante uma falha de capacidade?

No caso de uma falha de capacidade ao adicionar os nós verdes , a atualização falhará e os nós azuis permanecerão inalterados. Você pode repetir a atualização quando a capacidade suficiente estiver disponível ou optar por reverter.

O que acontece durante a reversão?

Se o número de nós verdes for menor ou igual ao número de nós azuis quando a reversão for iniciada, os nós verdes serão removidos e os nós azuis serão descordados e revividos para retomar a operação normal.

Para saber mais sobre atualizações de pool de nós no AKS, consulte os seguintes artigos: