Atualizações de 'blue-green' dos conjuntos de nós no Azure Kubernetes Service (AKS) (versão prévia)

As atualizações azul-verde permitem-lhe atualizar os seus pools de nós AKS adicionando novos nós verdes com a configuração atualizada (Kubernetes e versão da imagem de nós) ao pool de nós existente, enquanto os nós azuis originais continuam a funcionar. Esta estratégia permite-lhe testar e validar a nova configuração antes de se comprometer com a nova versão, com a possibilidade de reverter rapidamente se surgirem problemas.

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

Quando usar melhorias azul-esverdeadas

Observação

Tenha em mente que as melhorias azul-esverdeadas requerem o dobro da capacidade dos nós durante o processo de atualização, o que pode levar a custos e necessidades de recursos acrescidos.

Considere melhorias azul-esverdeadas quando:

  • É necessário testes granulares e verificação das cargas de trabalho lote a lote.
  • É necessário validar as novas configurações de nós antes de redirecionar o tráfego de produção.
  • Você quer capacidade de reversão instantânea sem precisar reprovisionar os nós.
  • Estás a atualizar tarefas críticas de produção que não toleram interrupções.
  • Precisas de testar a compatibilidade da aplicação com as novas versões do Kubernetes.

Se está atualmente a usar um processo manual de implementação azul-verde para atualizações de pools de nós e pretende automatizar este fluxo de trabalho, considere usar atualizações de pools de nós azul-verde do AKS em vez disso. Para mais informações sobre o processo manual de atualização azul-verde, consulte Atualizações manuais do pool de nós azul-verde.

Quando usar upgrades rotativos padrão

As atualizações contínuas padrão podem ser mais apropriadas nos seguintes cenários:

  • Ambientes de desenvolvimento ou testes com tolerância a tempos de inatividade.
  • Implantações sensíveis a custos onde a duplicação temporária é proibitiva.
  • Aplicações simples sem estado com boa gestão de perturbações.
  • Ambientes com quotas ou capacidades disponíveis limitadas.

Pré-requisitos

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

Instala a extensão aks-preview CLI do Azure

Importante

Os recursos de pré-visualização do AKS estão disponíveis numa base de autosserviço e 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 teste do AKS são parcialmente cobertas pelo suporte ao cliente numa base de melhor esforço. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

Instale ou atualize a aks-preview extensão usando os az extension add comandos 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

Funcionalidades suportadas para atualizações azul-esverdeadas

As atualizações azul-esverdeadas suportam atualmente as seguintes funcionalidades:

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

As atualizações azul-esverdeadas atualmente não suportam as seguintes funcionalidades:

Tenha em mente as seguintes considerações ao utilizar melhorias azul-esverdeadas:

Requisitos de recursos Considerações de complexidade Fatores temporais
* Requer o dobro da capacidade do nó durante o processo de atualização, levando a custos de infraestrutura aumentados.
* Precisa de quota extra de capacidade de computação na sua subscrição do Azure para acomodar a duplicação temporária do número de nós.
* Pode deparar-se com limites regionais de capacidade durante os períodos de maior consumo.
* Requer um planeamento cuidadoso para cargas de trabalho stateful para garantir a consistência dos dados durante a migração.
* Requer monitorização adicional para ambos os nós azul e verde durante o período de transição.
* Duração total de atualização mais longa comparada com as melhorias 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 conjunto de nós. Podes atualizar e comprometer-te com o novo pool verde após a validação ou fazer upgrade e voltar ao pool azul original se encontrares problemas.

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

O diagrama seguinte ilustra o fluxo de trabalho de atualização e de commit.

Diagrama que mostra o fluxo de trabalho de cenários de atualização e commit.

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

  1. Nós cordon blue: 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: Tanto os nós azul como o verde correm simultaneamente dentro do mesmo pool de nós.
  4. Migração gradual: As cargas de trabalho são progressivamente drenadas dos nós azuis e reagendadas para nós verdes em lotes.
  5. Validar nós verdes: Monitorizar e testar cargas de trabalho nos novos nós durante a migração.
  6. Transição completa: Após o período final de validação, os nós azuis são eliminados e os nós verdes tornam-se primários.

Cenário de atualização e retrocesso

O diagrama seguinte ilustra o fluxo de trabalho de atualização e reversão:

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

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

  1. Nós cordon blue: 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: Tanto os nós azul como o verde correm simultaneamente dentro do mesmo pool de nós.
  4. Detetar falhas: Identificar problemas durante a validação nos nós verdes.
  5. Executar rollback: Descordar os nós azuis , drenar os nós verdes e migrar as cargas de trabalho de volta para nós azuis .
  6. Estado de restauro: Os nós verdes são eliminados e o pool de nós regressa à sua configuração original.

Escolha a sua estratégia de upgrade

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

Estratégia Description
Rolling (padrão) Atualização contínua padrão onde 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 a funcionar.

Personalizar propriedades de atualização blue-green

Pode personalizar as seguintes propriedades de melhoria azul-esverdeadas (NodePoolBlueGreenUpgradeSettings):

Propriedade Description Valores permitidos Valor predefinido
drainBatchSize Número ou percentagem de nós a drenar em cada lote durante a atualização. A percentagem é calculada a partir do 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 percentagem (por exemplo, 50%). Tem de ser um valor diferente de zero. 10%
drainTimeoutInMinutes Tempo máximo de espera (em minutos) para que os pods terminem de forma ordenada em cada nó antes de a atualização falhar. Respeita os orçamentos de perturbação dos pods durante este período de espera. Se excedida, a atualização falhará. Inteiro entre 1 e 1440 (24 horas). 30 minutos
batchSoakDurationInMinutes Tempo de pausa (em minutos) entre o esvaziamento 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) depois de todos os nós serem esvaziados antes de remover os nós antigos. Fornece um período final de validação antes de se comprometer com a atualização. As operações de rollback só estão disponíveis durante este período final de absorção. Quando este período termina e o pool azul é eliminado, o rollback deixa de ser possível. Inteiro entre 0 e 10080 (sete dias). 60 minutos

Crie um pool de nós com as definições padrão de atualização azul-verde

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

    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 definições personalizadas de atualização azul-verde usando o comando az aks nodepool add com o parâmetro --upgrade-strategy definido para bluegreen e defina as definições personalizadas de atualização azul-verde conforme desejado. O exemplo seguinte cria um novo pool de nós nomeado myNodePool no cluster AKS myAKSCluster dentro do grupo de recursos myResourceGroup, com configurações de atualização azul-verde personalizadas.

    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
    

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

Importante

Ao retomar uma atualização pausada, pode atualizar as definições azul-verde, mas não pode alterar a estratégia de atualização nem 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. Podes iniciar uma atualização azul-verde para um pool de nós que já usa a estratégia azul-verde ou para um pool de nós ainda não configurado com a estratégia azul-verde. Os exemplos seguintes 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

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

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

Reverter uma atualização azul-esverdeada

Uma vez cancelada uma atualização azul-verde em curso, o rollback pode ser iniciado usando o az aks nodepool rollback comando.

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

O exemplo seguinte efetua um rollback da atualização azul-verde para o pool de nós nomeado myNodePool no AKS cluster myAKSCluster dentro do grupo myResourceGroup de recursos:

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

Perguntas mais frequentes (FAQ)

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

Não, a maxUnavailable configuração não se aplica a atualizações blue-green. Novos nós verdes são adicionados ao pool de nós existente juntamente 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 de pools de nós além das atualizações de versão do Kubernetes e da imagem dos nós?

Não, a estratégia de atualização azul-verde é específica para o Kubernetes e para as versões da imagem dos nós neste momento. Outras alterações, como rotação de certificados ou alterações de kubelet e configuração do sistema operativo, não podem ser executadas através da estratégia de atualização azul-verde.

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

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

Posso usar o canal automático de correção de segurança 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 padrão de atualização contínua.

O que acontece aos volumes persistentes durante as atualizações azul-esverdeadas?

Os volumes persistentes permanecem acessíveis. Os pods são cuidadosamente drenados e reagendados, mantendo as suas conexões de volume.

Posso realizar atualizações azul-verde em vários pools 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 não podes controlar a ordem das melhorias em vários pools.

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

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

Qual é o impacto de custo das melhorias azul-verde?

És cobrado tanto pelos nós azuis originais como pelos novos nós verdes durante a janela de atualização, por isso certifica-te de planear uma duplicação temporária de custos durante o período de transição.

O que acontece durante uma falha de capacidade?

No caso de falha de capacidade ao adicionar os nós verdes , a atualização falha e os nós azuis permanecem inalterados. Podes tentar novamente a atualização assim que houver capacidade suficiente ou optar por reverter.

O que acontece durante o rollback?

Se o número de nós verdes for menor ou igual ao número de nós azuis quando o rollback for iniciado, os nós verdes são removidos, e os nós azuis são desacorralados e reativados para retomar a operação normal.

Para saber mais acerca da atualização de pools de nós no AKS, consulte os seguintes artigos: