Atualizar um pool de nós
Neste tópico, explicamos como atualizar seus pools de nós. É possível atualizar seus pools de nós pelos seguintes motivos:
- Para fazer upgrade da versão do pool de nós
- Para alterar o número de nós no pool de nós
- Para alterar as anotações do pool de nós (atualizável somente por meio da API)
Também é possível alterar outros parâmetros nos pools de nós não listados acima.
Para ver uma lista completa de parâmetros que é possível atualizar, consulte as
documentações
gcloud container azure node-pools update
e
projects.locations.azureNodePools.patch
.
Atualizar processo
Nesta seção, descrevemos os processos que o GKE no Azure usa para atualizar um pool de nós. O processo é diferente, dependendo da extensão das alterações necessárias no pool de nós.
Atualização apenas de configuração
Se os clusters do GKE no Azure puderem atualizar um pool de nós sem reiniciar ou recriar qualquer recurso, essas alterações serão feitas. Por exemplo, atualizar as anotações do pool de nós não reiniciará nenhuma instância.
Atualização gradual
Quando uma alteração em um pool de nós requer a reinicialização de máquinas virtuais atuais, por exemplo, ao atualizar a versão do Kubernetes, o GKE no Azure realiza as seguintes etapas:
- Modifique o conjunto de escalas da máquina virtual do pool de nós com a nova configuração.
- Escolha a instância subjacente de um nó para atualizar.
- O GKE no Azure delimita e consome o nó. Neste ponto, não é possível programar novos pods no nó de destino. Os objetos de pod atuais no nó de destino são reprogramados para outros nós. Os pods que não podem ser reprogramados para qualquer outro nó permanecem na fase Pendente até que possam ser programados.
- Atualize a instância para usar a configuração mais recente do conjunto de escalas de máquinas virtuais.
- Recrie e reinicialize a instância.
- Aguarde até que todos os nós neste pool se tornem íntegros.
- Se todos os nós neste pool estiverem íntegros, selecione outro nó até que todos
os nós sejam atualizados. Se algum nó não estiver íntegro, o GKE no Azure colocará
o pool de nós em um estado
DEGRADED
. Para mais informações, consulte Atualizações com falha.
Proteger cargas de trabalho durante uma atualização contínua do pool de nós
Durante a atualização gradual do pool de nós, o GKE no Azure cumpre a configuração
de PodDisruptionBudget por até uma hora após um nó começar a ser consumido. Depois de uma hora, o GKE no Azure
exclui todos os pods restantes no nó.
Como redimensionar pools de nós
Os pools de nós do GKE no Azure têm o escalonador automático de cluster ativado por padrão. O escalonador automático de cluster redimensiona automaticamente o pool de nós com base nas demandas das cargas de trabalho. Para mais informações sobre o escalonador automático de cluster, consulte Escalonador automático de cluster.
Quando você altera o número máximo e mínimo de nós no pool de nós, o GKE no Azure realiza ações diferentes, dependendo da nova configuração e do número de nós atual do pool de nós. Essas ações incluem o seguinte:
Se a contagem atual de nós do pool de nós já estiver dentro do novo intervalo, o GKE no Azure não irá alterar o número de nós no pool.
Se o novo número mínimo de nós for maior que a contagem atual de nós do pool de nós, o GKE no Azure irá adicionar mais nós até que o pool alcance o novo tamanho mínimo.
Se o novo número máximo de nós for menor que a contagem atual de nós do pool de nós, o GKE no Azure irá reduzir o tamanho do pool de nós executando as seguintes ações:
- Atualize a configuração de escalonamento automático na escala de máquina virtual definida no pool de nós
- Selecione um nó a ser removido
- Restringir e drenar o nó
- Exclua a instância de máquina virtual subjacente
- Aguarde até que a máquina virtual seja totalmente excluída
- Faça verificação de integridade em todo o pool de nós
- Repita até que o número de nós alcance o número desejado
Como o GKE no Azure protege as cargas de trabalho durante o redimensionamento do pool de nós
Durante o redimensionamento do pool de nós, o GKE no Azure cumpre a configuração de PodDisruptionBudget por até uma hora após um nó começar a ser consumido. Depois de uma hora, o GKE no Azure exclui todos os objetos de pod restantes no nó.
Durante o redimensionamento do pool de nós, o GKE no Azure realiza um encerramento simples de todos os nós que serão reiniciados ou removidos e aguarda até duas horas. Após duas horas, se houver objetos de pod restantes no nó, o GKE no Azure irá excluir a instância de máquina virtual subjacente.
Verificar se há um status de atualização com falha
Se o GKE no Azure realizar uma verificação de integridade após uma atualização e a
verificação falhar, o pool de nós será marcado como DEGRADED
. É possível encontrar
informações de status no cluster com o seguinte comando da Google Cloud CLI:
gcloud container azure node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Substitua:
NODE_POOL_NAME
: o nome do pool de nósCLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região do Google Cloud que gerencia o cluster
A saída inclui informações sobre o status e a configuração do pool de nós.
Pré-requisitos
Para atualizar um pool de nós, é necessário ter a
permissão gkemulticloud.googleapis.com/azureNodePools.update
do gerenciamento de identidade e acesso.
Atualizar um pool de nós
É possível atualizar um pool de nós com a Google Cloud CLI. Para atualizar um pool de nós, execute:
gcloud container azure node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Substitua:
NODE_POOL_NAME
: o nome do pool de nós a ser atualizado;CLUSTER_NAME
: o nome do cluster ao qual o pool de nós será anexadoGOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
NODE_POOL_VERSION
: a nova versão do pool de nós compatívelMIN_NODES
: o número mínimo de nós que o pool pode conter. Precisa ser0
ou maior.MAX_NODES
: o número máximo de nós que o pool pode conter. Precisa ser pelo menos1
e ter o valor deMIN_NODES
.
Como cancelar uma operação de atualização
Para cancelar uma operação de atualização de pool de nós em andamento, execute o seguinte comando:
gcloud container azure operations cancel OPERATION_NAME
Substitua OPERATION_NAME
pelo nome da operação de atualização.
O cancelamento de uma operação de atualização de pool de nós que está em andamento não reverte as atualizações de nós que já foram concluídas. Isso pode resultar em um pool de nós parcialmente atualizado.
A seguir
- Leia a documentação de referência sobre gcloud container azure node-pools create.
- Excluir um pool de nós.