Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
AKS (Serviço de Kubernetes do Azure) executa atualizações sem interrupção para minimizar a interrupção na execução de cargas de trabalho.
Para a maioria das cargas de trabalho de produção, o AKS Automatic é o padrão recomendado quando aplicável. O AKS Automatic inclui configurações padrão prontas para produção para operações de atualização, como atualizações automáticas de versão do Kubernetes, atualizações automáticas de imagem do sistema operacional (SO) do nó, operações de nó do sistema gerenciado e proteções integradas que reduzem a sobrecarga manual. Para obter mais informações, consulte Introdução ao AKS Automatic.
Este artigo explica a mecânica de atualização do AKS e destaca onde o AKS Automatic e o AKS Standard diferem.
Pré-requisitos
- Noções básicas sobre as práticas recomendadas de atualização do Kubernetes
- Familiaridade com Orçamentos de Interrupção de Pod (PDBs)
Modelo de atualização: AKS Automatic e AKS Standard
Os modos de cluster AKS Automatic e AKS Standard usam os mesmos fundamentos de atualização do Kubernetes, mas diferem nas configurações padrão e na responsabilidade operacional.
| Preocupação com a atualização | AKS Automático | AKS Standard |
|---|---|---|
| Posicionamento de produção | Configuração padrão recomendada para a maioria das cargas de trabalho de produção, quando aplicável | Modelo flexível com configuração mais manual por padrão |
| Atualizações de versão secundária do Kubernetes | Canal de atualização automática pré-configurado | Manual por padrão, canal automático opcional |
| Atualizações de imagens do SO com nós | Canal de imagem do SO do nó automático pré-configurado | Manual por padrão, canal automático opcional |
| Operações do conjunto de nós do sistema | Gerenciado pelo AKS | Gerido pelo cliente |
| Janelas de manutenção planejada | Disponível por padrão | Configuração opcional |
| Controles de interrupção da carga de trabalho | De propriedade do cliente, incluindo estratégia de réplica, comportamento de prontidão e política de interrupção | De propriedade do cliente, incluindo estratégia de réplica, comportamento de prontidão e política de interrupção |
Note
O AKS Simplifica automaticamente as operações da plataforma, mas a responsabilidade compartilhada ainda se aplica. O design de disponibilidade no nível da carga de trabalho e o comportamento da política de remoção permanecem responsabilidades do cliente.
Comportamento de atualização sem interrupção no AKS
O AKS atualiza os pools de nós usando um padrão contínuo que mantém a capacidade enquanto substitui ou reinstala a imagem dos nós. Esse comportamento é o mesmo em todos os modos de cluster do AKS.
Em linhas gerais, AKS:
- Adiciona capacidade extra temporária com base nas configurações de upgrade.
- Isolam e esvaziam nós para mover cargas de trabalho.
- Reinstala ou substitui nós para a versão de destino.
- Remove a capacidade temporária de pico após a conclusão.
Exemplo de atualização sem interrupção
Este exemplo demonstra como atualizar um cluster de dois nós do Kubernetes 1.30 para 1.31 com maxSurge definido como 1.
Etapa 1: Configuração inicial
O cluster começa com dois nós executando a versão 1.30, cada um hospedando pods de aplicativo.
- Nó 1: Pod A, Pod B
- Nó 2: Pod C, Pod D
- Surge Node: vazio (exceto para DaemonSets e pods novos)
Etapa 2: Isolar e drenar o primeiro nó
O AKS isola o Nó 1 para impedir o agendamento de novos pods e depois esvazia os pods existentes.
- Pod A → Removido e substituído no nó de pico
- Pod B → Removido e substituído no Node 2
Etapa 3: Atualizar o primeiro nó
O Nó 1 é reconfigurado com o Kubernetes versão 1.31, enquanto os pods continuam em execução nos outros nós.
- Nó 1: Atualizado para v1.31
- Nó 2: Pod B, Pod C, Pod D
- Nó de surto: Pod A
Etapa 4: Isolar e esvaziar o segundo nó
O AKS repete novamente o processo para o Nó 2, os pods são removidos, e o agendador os redistribui para nós disponíveis apropriados.
- Pod C, B → Removido e substituído no Node 1
- Pod D → Removido e substituído no Nó de Aumento
- Nó 2: isolado e com imagem recriada para a v1.31
Etapa 5: Remover o nó de aumento
Após todos os nós permanentes serem atualizados, o Nó de Sobrecarga é isolado, drenado e excluído.
- Pod A → Removido e substituído no Nó 1
- Pod D → Removido e substituído no Nó 2
- Nó de Surge: Removido
Estado final
Todos os nós agora executam o Kubernetes versão 1.31 com pods agendados em todo o cluster.
- Nó 1 (v1.31): Pod A, Pod C
- Nó 2 (v1.31): Pod B, Pod D
Comportamento restritivo do Orçamento de Interrupção de Pod (PDB)
Se um PDB restritivo bloquear a remoção, a drenagem do nó pode ser atrasada ou impedida. O AKS pode usar o comportamento de nó não drenável Cordon para continuar atualizando outros nós elegíveis, dependendo do comportamento configurado. Nós bloqueados podem permanecer em uma versão mais antiga até que a condição de bloqueio seja resolvida.
Exemplo de PDB restritivo
Este exemplo mostra a atualização de um cluster de dois nós do Kubernetes 1.30 para 1.31 com maxSurge definido como 2 e um PDB bloqueando a operação de drenagem do primeiro nó.
Etapa 1: Configuração inicial com PDB restritivo
O cluster começa com dois nós executando a versão 1.30, com um PDB protegendo o Pod A contra remoção.
- Nó 1: Pod A (protegido por PDB), Pod B
- Nó 2: Pod C, Pod D
- Nós de expansão: 2 novos nós criados
- PDB: impede a expulsão do Pod A
Etapa 2: Tentar esvaziar o primeiro nó (bloqueado)
O AKS isola o Nó 1, mas não consegue drenar o Pod A devido às restrições do Orçamento de Interrupção de Pod.
- Nó 1: isolado e marcado como em quarentena (Pod A travado)
- Pod B → Removido e substituído no Nó de Sobrecarga 1, enquanto o Nó de Sobrecarga 2 fica temporariamente inativo.
- Status: Atualização do Nó 1 bloqueada
Etapa 3: Prosseguir para o segundo nó
Com o Nó 1 em quarentena, o AKS continua atualizando o Nó 2.
- Nó 1: Permanece em quarentena (v1.30)
- Nó 2: Isolado e esvaziado com êxito
- Pod C → Removido e substituído no Nodo de Impulso 2
- Pod D → Removido e substituído no Nodo de Expansão 2
Etapa 4: Atualizar o segundo nó
O Nó 2 foi reconfigurado com êxito para o Kubernetes versão 1.31.
- Nó 1: Ainda em quarentena (v1.30) com o Pod A
- Nó 2: Atualizado para v1.31
- Nó de surto 1: Pod B
- Nó de surto 2: Pod C, Pod D
Etapa 5: Um Nó de Sobrecarga torna-se o substituto permanente enquanto outro é removido
Como o Nó 1 permanece em quarentena, o Nó de Sobrecarga 1 torna-se o substituto permanente executando a versão 1.31 e o Nó de Sobrecarga 2 é excluído.
- Nó 1: colocado em quarentena (v1.30) – Exige intervenção manual
- Pod C, Pod D → Removidos do Nó de Sobrecarga 2 e substituídos no Nó 2
- Surge Node 1 (v1.31): Pod B (agora é permanente)
- Surge Node 2 (v1.31): Excluído
Estado final
A atualização é concluída com um nó em quarentena, exigindo a intervenção manual.
- Nó 1: Colocado em quarentena (v1.30) com o Pod A – O cliente precisa resolvê-lo manualmente (veja Resolver nós não esvaziáveis)
- Nó 2 (v1.31): Em execução normalmente
- Nó de pico anterior (v1.31): Agora uma substituição permanente
Importante
O nó em quarentena (Nó 1) permanece sob a responsabilidade do cliente para resolução. Você deve escolher uma das seguintes opções:
- Ajuste o PDB para permitir o despejo do Pod A.
- Exclua manualmente o Pod A.
- Exclua e recrie o nó depois de corrigir a condição de bloqueio.
Principais considerações para atualizações bloqueadas pelo PDB
-
Comportamento de nó não drenável: Defina como
Cordonpara o pool de nós para habilitar esse comportamento de quarentena. - Responsabilidade do cliente: os nós em quarentena exigem intervenção manual para serem resolvidos.
- Capacidade do cluster: O nó de sobrecarga torna-se permanente, podendo afetar o planejamento da capacidade do cluster.
- Monitoramento: acompanhe os nós em quarentena por meio de Azure Monitor ou kubectl para garantir a resolução oportuna.
Dica
Para evitar o cenário de quarentena, você pode usar o gerenciamento automático de PDB para aumentar automaticamente as réplicas da implantação; assim, as restrições do PDB são atendidas antes do início da drenagem. Isso permite que a remoção prossiga sem bloqueio, eliminando a necessidade de resolução manual de quarentena.
Atualizações do pool de nós Azul-Verde (controle manual)
As atualizações Blue-Green oferecem uma abordagem de atualização mais controlada ao criar manualmente um conjunto completo de novos pools de nós antes de migrar cargas de trabalho. Essa abordagem manual oferece controle total sobre o processo de atualização e o tempo.
Para obter mais informações, consulte Atualizações do pool de nós Azul-Verde no AKS.
Quando usar atualizações de Blue-Green
As atualizações manuais de pools de nós Azul-Verde são uma estratégia avançada para requisitos específicos, como pontos de verificação de migração explícitos, portões de validação personalizados ou transições rigorosamente controladas.
Use o Blue-Green manual quando precisar de:
- Fases de migração controladas pelo operador.
- Critérios personalizados de validação e aceitação antes da confirmação.
- Coreografia de reversão explícita vinculada a runbooks internos.
Para a maioria das cargas de trabalho de produção, quando aplicável, o comportamento de atualização padrão automático do AKS é o ponto de partida preferencial e o Blue-Green manual normalmente é reservado para casos excepcionais.
Conceitos principais
- Pool de nós Azul: Seu pool de nós existente executando a versão atual do Kubernetes.
- Pool de nós verdes: novo pool de nós que você cria executando a versão do Kubernetes de destino.
- Controle manual: você gerencia todos os aspectos do processo de migração.
- Pontos de verificação de validação: você decide quando prosseguir, pausar ou reverter.
Benefícios das atualizações de Blue-Green
- Controle total: você decide exatamente quando cada etapa ocorre.
- Validação personalizada: implemente seus próprios critérios de validação e tempo.
- Migração gradual: mova cargas de trabalho em seu ritmo preferencial.
- Reversão fácil: os nós originais permanecem disponíveis até que você os exclua.
Principais considerações para atualizações de Blue-Green
- Esforço manual: requer gerenciamento ativo durante todo o processo.
- Requisitos de cota: Requer o dobro da capacidade de nós durante a atualização.
- Planejamento: documente seus critérios de validação e procedimentos de reversão.
Exemplo de processo de atualização de Blue-Green manual
Este exemplo demonstra como atualizar manualmente um cluster de dois nós do Kubernetes 1.30 para 1.31 usando a estratégia Blue-Green.
Etapa 1: Criar um pool de nós verdes
Comece a tarefa criando manualmente um pool de nós com a versão de destino do Kubernetes, em conjunto com o pool de nós existente.
- Pool de nós azul (v1.30): Pod A, Pod B, Pod C, Pod D (existente)
- Pool de nós verde (v1.31): vazio (criado manualmente por você)
-
Sua ação:
az aks nodepool addcom a nova versão do Kubernetes
Etapa 2: Isolar manualmente os nós azuis
Isolar os nós azuis para impedir o agendamento de novos pods, mantendo os pods existentes em execução.
-
Sua ação:
kubectl cordonem cada nó azul - Nós azuis: isolados, sem novos pods agendados
- Nós verdes: Prontos para receber cargas de trabalho
Etapa 3: Drene manualmente os nós azuis (ritmo controlado)
Você controla o ritmo de migração drenando os nós manualmente, seja um de cada vez ou em lotes.
-
Sua ação:
kubectl drainem nós azuis selecionados - Migração de pods: os pods são reagendados automaticamente para nós verdes
- Validação: verificar cargas de trabalho em nós verdes antes de continuar
Etapa 4: Validar e decidir
Depois de migrar cargas de trabalho, valide o desempenho do aplicativo em nós verdes.
Durante essa fase, você pode:
- Monitor: Verificar as métricas e os logs do aplicativo
- Teste: executar testes de validação no pool de nós verdes
- Decidir: Comprometer com o verde ou reverter para o azul
Etapa 5: Confirmar ou reverter
Com base na validação, você concluirá manualmente a atualização ou a reverterá.
Opção A – Confirmação (Êxito):
-
Sua ação: excluir o pool de nós azuis usando
az aks nodepool delete - Resultado: O pool de nós verdes se torna o primário
Opção B — Reverter (Problemas detectados):
-
Sua ação: Desvincule os nós azuis usando
kubectl uncordon, esvazie os nós verdes usandokubectl drain, e exclua o pool de nós verde usandoaz aks nodepool delete - Resultado: cargas de trabalho retornam a nós azuis
Considerações de produção para o planejamento de atualização
-
Configuração de aumento (
maxSurge) : controla o número de nós de aumento criados durante as atualizações. Valores mais altos aceleram as atualizações, mas consomem mais recursos. - Orçamentos de interrupção de pod (PDBs): Configure os PDBs para garantir a disponibilidade do aplicativo durante o processo de atualização.
- Atualizações de pool de nós: cada conjunto de nós é atualizado de forma independente. Planeje sua estratégia de atualização adequadamente.
- Capacidade e cota: valide os requisitos temporários e de capacidade de estado estável antes das janelas de atualização.
- Monitoramento e alertas: configure o monitoramento e alertas antes do início da atualização.
No AKS Automatic, várias opções de atualização no nível da plataforma são pré-configuradas para preparação de produção. No AKS Standard, as equipes normalmente fazem essas escolhas explicitamente.