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.
Azure Kubernetes Service (AKS) realiza atualizações contínuas para minimizar a perturbação das cargas de trabalho em execução.
Para a maioria das cargas de trabalho de produção, o AKS Automatic é o padrão recomendado quando aplicável. O AKS Automatic inclui valores predefinidos prontos para produção para operações de atualização, como atualizações automáticas de versões do Kubernetes, atualizações automáticas de imagens do sistema operativo (SO), operações geridas dos nós do sistema e salvaguardas incorporadas que reduzem a sobrecarga manual. Para mais informações, consulte Introdução ao AKS Automático.
Este artigo explica as mecânicas 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 os Orçamentos de Perturbação de Pods (PDBs)
Modelo de atualização: AKS Automático e AKS Padrão
Os modos de cluster AKS Automatic e AKS Standard usam os mesmos fundamentos de atualização do Kubernetes, mas diferem nas predefinições e na responsabilidade operacional.
| Preocupação com a atualização | AKS Automático | Padrão AKS |
|---|---|---|
| Posicionamento de produção | Padrão recomendado para a maioria das cargas de trabalho de produção, quando aplicável | Modelo flexível com configuração mais manual por defeito |
| Atualizações de versões menores do Kubernetes | Canal de atualização automática pré-configurado | Manual predefinido, canal automático opcional |
| Atualizações de imagem do sistema operativo de nós | Canal de imagem do sistema operativo automático pré-configurado | Manual predefinido, canal automático opcional |
| Operações do conjunto de nós do sistema | Gerido pela AKS | Gerido pelo cliente |
| Janelas de manutenção planeada | Disponível por predefinição | Configuração opcional |
| Controlo de perturbação da carga de trabalho | Gerido pelo cliente, incluindo estratégia de replicação, comportamento de preparação e política de interrupção | Gerido pelo cliente, incluindo estratégia de replicação, comportamento de preparação e política de interrupção |
Note
O AKS Automatic simplifica as operações da plataforma, mas a responsabilidade partilhada continua a aplicar-se. O design de disponibilidade ao nível da carga de trabalho e o comportamento das políticas de despejo continuam a ser responsabilidades do cliente.
Comportamento de atualização contínua no AKS
O AKS atualiza os pools de nós usando um padrão contínuo que mantém a capacidade enquanto substitui ou reconfigura os nós. Este comportamento é o mesmo em todos os modos do cluster AKS.
A um nível geral, AKS:
- Adiciona capacidade adicional temporária com base nas definições de atualização.
- Cordões e drenos de nós para mover cargas de trabalho.
- Reimagina ou substitui nós para a versão de destino.
- Remove a capacidade de pico temporária após a conclusão.
Exemplo de atualização contínua
Este exemplo demonstra a atualização de um cluster de dois nós do Kubernetes 1.30 para o 1.31 com maxSurge definido para 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 aplicativos.
- Nó 1: Pod A, Pod B
- Nó 2: Pod C, Pod D
- Surge Node: Vazio (exceto para DaemonSets e novos pods)
Passo 2: Cordão e drenagem do primeiro nó
AKS isola o Node 1 para evitar o agendamento de novos pods e, em seguida, desvazia os pods existentes.
- Pod A → Removido e substituído no Surge Node
- Pod B → Despejado e substituído no Nó 2
Etapa 3: Atualização do primeiro nó
O nó 1 é reimaginado com a versão 1.31 do Kubernetes, enquanto os pods continuam a correr noutros nós.
- Nó 1: Atualizado para v1.31
- Nó 2: Pod B, Pod C, Pod D
- Nó de surto: Pod A
Passo 4: Cordão e drenagem do segundo nó
O AKS repete o processo para o Nó 2, os pods são desalojados e o agendador redistribui-os para os nós apropriados disponíveis.
- Pod C, B → Despejado e substituído no Nó 1
- Pod D → removido e substituído no Surge Node
- Nó 2: Isolado e reinicializado para v1.31
Etapa 5: Remover o nó de impulso
Depois de todos os nós permanentes serem atualizados, o Nó Surge é isolado, drenado e eliminado.
- Pod A → Removido e substituído no Node 1
- Pod D → Desalojado e substituído no Nó 2
- Nó de sobrecarga: Excluído
Estado final
Todos os nós agora estão executando o Kubernetes versão 1.31 com pods agendados no cluster.
- Nó 1 (v1.31): Pod A, Pod C
- Nó 2 (v1.31): Pod B, Pod D
Comportamento restritivo do Pod Disruption Budget (PDB)
Se uma PDB restritiva bloquear a desocupação, a drenagem de nós pode ser atrasada ou impedida. O AKS pode usar o comportamento de nó não drenável Cordon para continuar a atualizar outros nós elegíveis, consoante o comportamento configurado. Os nodos bloqueados podem permanecer numa versão anterior até que a condição de bloqueio seja resolvida.
Exemplo restritivo de PDB
Este exemplo mostra a atualização de um cluster de dois nós da versão 1.30 para a 1.31 do Kubernetes, com maxSurge definido como 2 e um PDB a bloquear 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 da remoção.
- Nó 1: Pod A (protegido por PDB), Pod B
- Nó 2: Pod C, Pod D
- Nós de pico: Foram criados 2 novos nós
- PDB: Previne o despejo do Pod A
Etapa 2: Tente esvaziar o primeiro nó (obstruído)
O AKS isola o Nó 1, mas não consegue drenar o Pod A devido às restrições do PDB.
- Nó 1: Isolado e marcado como em quarentena (Pod A bloqueado)
- O Pod B → expulso e substituído no Surge Node 1, enquanto o Surge Node 2 temporariamente não é usado
- Estado: Atualização do nó 1 bloqueada
Passo 3: Avançar para o segundo nó
Com o Nó 1 em quarentena, o AKS continua a melhorar o Nó 2.
- Nó 1: Permanece em quarentena (v1.30)
- Nó 2: Isolado e drenado com sucesso
- Pod C → Removido e substituído no Surge Node 2
- Pod D → Removido e substituído no Surge Node 2
Etapa 4: Atualizar o segundo nó
O nó 2 foi recriado 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ó Surge 2: Pod C, Pod D
Passo 5: Um nó de expansão passa a substituição permanente enquanto outro é removido
Como o Nó 1 permanece em quarentena, o Nó Surge 1 torna-se o substituto permanente a correr a v1.31 e o Nó Surge 2 é eliminado.
- Nó 1: Em quarentena (v1.30) - requer 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): Eliminado
Estado final
A atualização é concluída com um nó em quarentena que requer intervenção manual.
- Nó 1: Em quarentena (v1.30) com Pod A - O cliente deve resolver manualmente (consulte Resolver nós não drenáveis)
- Nó 2 (v1.31): Funcionando normalmente
- Antigo Surge Node (v1.31): Agora substituição permanente
Importante
O nó em quarentena (Nó 1) continua sendo de responsabilidade do cliente. Deve ou:
- Ajuste o PDB para permitir o desalojamento do Pod A.
- Apague manualmente o Pod A.
- Apague e recrie o nó depois de corrigir a condição de bloqueio.
Principais considerações para upgrades bloqueados por PDB
-
Comportamento do nó não drenável: Defina
Cordonno conjunto de nós para ativar este comportamento de quarentena. - Responsabilidade do cliente: Os nós em quarentena requerem intervenção manual para serem resolvidos.
- Capacidade do cluster: O nó de pico torna-se permanente, afetando potencialmente o planeamento da capacidade do cluster.
- Monitorização: Acompanhe os nós em quarentena através do Azure Monitor ou kubectl para garantir uma resolução atempada.
Sugestão
Para evitar completamente o cenário de quarentena, pode usar a gestão automática de PDB para escalar automaticamente as réplicas da implementação, de modo a que as restrições do PDB sejam satisfeitas antes do início da drenagem. Isto permite que a expulsão prossiga sem bloqueio, eliminando a necessidade de resolução manual da quarentena.
Blue-Green atualizações do pool de nós (controlo manual)
As atualizações Blue-Green proporcionam uma abordagem de atualização mais controlada, ao criar manualmente um conjunto completo de novos pools de nós antes de migrar as cargas de trabalho. Esta abordagem manual dá-lhe controlo total sobre o processo de atualização e tempo.
Para mais informações, veja Blue-Green atualizações do pool de nós no AKS.
Quando usar atualizações Blue-Green
As atualizações manuais Blue-Green do conjunto de nós são uma estratégia avançada para requisitos especializados, como pontos de controlo explícitos de migração, etapas de validação personalizadas ou transições rigorosamente controladas.
Use Blue-Green manual quando precisar de:
- Fases de migração controladas pelo operador.
- Validação personalizada e critérios de aceitação antes do commit.
- Orquestração explícita da reversão associada a procedimentos operacionais internos.
Para a maioria das cargas de trabalho de produção, quando aplicável, o comportamento predefinido de atualização do AKS Automatic é a opção inicial preferida, e a abordagem Blue-Green manual fica normalmente reservada para casos excecionais.
Conceitos-chave
- Pool de nós azul: O pool de nós existente com a versão atual do Kubernetes.
- Pool de nós verdes: Novo pool de nós que crias a correr a versão alvo do Kubernetes.
- Controlo manual: Geres todos os aspetos do processo de migração.
- Pontos de verificação de validação: Decides quando prosseguir, pausar ou recuar.
Benefícios das atualizações Blue-Green
- Controlo total: Decides exatamente quando ocorre cada passo.
- Validação personalizada: Implemente os seus próprios critérios de validação e timing.
- Migração gradual: Avance as cargas de trabalho ao ritmo que preferir.
- Reversão simples: Os nós originais permanecem disponíveis até serem eliminados.
Principais considerações para as atualizações Blue-Green
- Esforço manual: Requer uma gestão ativa ao longo de todo o processo.
- Requisitos de quota: Requer 2x a capacidade do nó durante a atualização.
- Planeamento: Documente os seus critérios de validação e procedimentos de reversão.
Exemplo de processo manual de atualização Blue-Green
Este exemplo demonstra a atualização manual de um cluster de dois nós do Kubernetes 1.30 para 1.31 usando a implantação Blue-Green.
Etapa 1: Criar pool de nós verdes
Você começa criando manualmente um novo pool de nós com a versão Kubernetes de destino ao lado do pool de nós existente.
- Pool de nós azuis (v1.30): Pod A, Pod B, Pod C, Pod D (existente)
- Pool de nós verdes (v1.31): Vazio (criado manualmente por si)
-
Sua ação:
az aks nodepool addcom a nova versão do Kubernetes
Passo 2: Isolar manualmente os nós azuis
Isolem os nós azuis para evitar o agendamento de novos pods enquanto mantêm os pods existentes a funcionar.
-
Sua ação:
kubectl cordonem cada nó azul - Nós azuis: Isolados, sem novos pods programados
- Nós verdes: Prontos para receber cargas de trabalho
Passo 3: Drenar manualmente os nós azuis (ritmo controlado)
Você controla o ritmo de migração, podendo esvaziar manualmente os nós, um de cada vez ou em grupos.
-
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 nos nós verdes antes de prosseguir
Passo 4: Validar e decidir
Após a migração das cargas de trabalho, valide o desempenho da aplicação nos nós verdes.
Durante essa fase, você pode:
- Monitor: Verifique as métricas e os logs do aplicativo
- Teste: Execute testes de validação no pool de nós verdes
- Decidir: Adotar o verde ou voltar ao azul
Etapa 5: confirmar ou reverter
Com base na tua validação, concluis manualmente a atualização ou o restauro.
Opção A - Comprometer-se (Sucesso):
-
A sua ação: Eliminar o pool de nós azuis usando
az aks nodepool delete - Resultado: O pool de nós verdes torna-se primário
Opção B - Reverter (Problemas detetados):
-
A sua ação: Descordar os nós azuis usando
kubectl uncordon, drenar os nós verdes usandokubectl drain, e eliminar o pool de nós verdes usandoaz aks nodepool delete - Resultado: As cargas de trabalho regressam aos nós Azuis
Considerações de produção para o planeamento de atualização
-
Configuração de pico (
maxSurge): Controla o número de nós de pico criados durante as atualizações. Valores mais altos aceleram as atualizações, mas consomem mais recursos. - Orçamentos de interrupção de pods (PDBs): Configure estes PDBs para garantir a disponibilidade da aplicação durante o processo de atualização.
- Atualizações do pool de nós: cada pool de nós é atualizado de forma independente. Planeie a sua estratégia de atualização em conformidade.
- Capacidade e quota: Valide os requisitos de capacidade temporária e em regime permanente antes das janelas de atualização.
- Monitorização e alertas: Configure a monitorização e os alertas antes de a atualização começar.
No AKS Automatic, várias opções de atualização ao nível da plataforma estão pré-configuradas para a prontidão de produção. No AKS Standard, as equipas normalmente fazem estas escolhas de forma explícita.