Atualizar um pool de nós
Este tópico explica como você pode atualizar seus pools de nós. Você pode atualizar seus pools de nós pelos seguintes motivos:
- Para atualizar a versão do seu pool de nós
- Para alterar o número de nós no seu pool de nós
- Para alterar as anotações do pool de nós (atualizável somente por meio da API)
Você também pode alterar parâmetros adicionais nos seus pools de nós não listados acima. Para obter uma lista completa dos parâmetros que você pode atualizar, consulte a documentação gcloud container azure node-pools update
e projects.locations.azureNodePools.patch
.
Processo de atualização
Esta seção descreve os processos que o GKE no Azure realiza para atualizar um pool de nós. O processo varia dependendo da extensão das alterações necessárias no pool de nós.
Atualização somente de configuração
Se o GKE no Azure puder atualizar um pool de nós sem reiniciar ou recriar nenhum recurso, ele fará essas alterações. Por exemplo, atualizar as anotações do seu pool de nós não reiniciará nenhuma instância.
Atualização contínua
Quando uma alteração em um pool de nós exige a reinicialização de máquinas virtuais existentes — por exemplo, ao atualizar a versão do Kubernetes — o GKE no Azure executa as seguintes etapas:
- Modifique o conjunto de dimensionamento da máquina virtual do pool de nós com a nova configuração.
- Escolha uma instância subjacente do nó para atualizar.
- O GKE no Azure isola e esvazia o nó. Nesse ponto, novos Pods não podem ser agendados no nó de destino. Objetos de Pod existentes no nó de destino são reagendados para outros nós. Pods que não podem ser reagendados para nenhum outro nó existente permanecem na fase Pendente até que possam ser agendados.
- Atualize a instância para obter a configuração mais recente do seu conjunto de dimensionamento de máquina virtual.
- Recrie a imagem e reinicie a instância.
- Aguarde até que todos os nós neste pool de nós fiquem íntegros.
- Se todos os nós neste pool de nós 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 obter mais informações, consulte Atualizações com falha .
Proteja as cargas de trabalho durante uma atualização contínua do pool de nós
Durante a atualização contínua do pool de nós, o GKE no Azure honra o PodDisruptionBudget
configuração por até uma hora após o início do esgotamento de um nó. Após uma hora, o GKE no Azure exclui todos os pods restantes no nó.
Redimensionando pools de nós
Os pools de nós do GKE no Azure têm o dimensionador automático de cluster habilitado por padrão. O dimensionador automático de cluster redimensiona automaticamente o pool de nós com base nas demandas das suas cargas de trabalho. Para obter mais informações sobre o dimensionador automático de cluster, consulte Dimensionador automático de cluster .
Ao alterar 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 atual de nós no pool. 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 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 adicionará mais nós até que o pool de nós atinja 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 reduzirá o tamanho do pool de nós executando as seguintes ações:
- Atualizar a configuração de dimensionamento automático no conjunto de dimensionamento da máquina virtual no pool de nós
- Selecione um nó para remover
- Cordão e drenagem do nó
- Excluir a instância da máquina virtual subjacente
- Aguarde até que a máquina virtual excluída desapareça completamente
- Execute uma verificação de integridade em todo o pool de nós
- Repita até que o número de nós atinja 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 mantém a configuração do PodDisruptionBudget por até uma hora após o início do esgotamento do nó. Após uma hora, o GKE no Azure exclui todos os objetos Pod restantes no nó.
Durante o redimensionamento do pool de nós, o GKE no Azure executa um desligamento normal de todos os nós a serem reiniciados ou removidos e aguarda até duas horas. Após duas horas, se houver objetos Pod restantes no nó, o GKE no Azure exclui a instância da máquina virtual subjacente.
Verifique 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 ela falhar, o pool de nós será marcado como DEGRADED
. Você pode encontrar informações de status no seu 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 o seguinte:
-
NODE_POOL_NAME
: o nome do seu pool de nós -
CLUSTER_NAME
: o nome do seu cluster -
GOOGLE_CLOUD_LOCATION
: o Google Cloud região que gerencia seu cluster
A saída inclui informações sobre o status e a configuração do seu pool de nós.
Pré-requisitos
Para atualizar um pool de nós, você precisa ter a permissão gkemulticloud.googleapis.com/azureNodePools.update
Identity and Access Management.
Atualizar um pool de nós
Você pode 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 o seguinte:
-
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á anexado -
GOOGLE_CLOUD_LOCATION
: o suportado Google Cloud região que gerencia seu cluster — por exemplo,us-west1
-
NODE_POOL_VERSION
: a nova versão do pool de nós com suporte -
MIN_NODES
: o novo número mínimo de nós que o pool de nós pode conter. Deve ser0
ou maior. -
MAX_NODES
: o novo número máximo de nós que o pool de nós pode conter. Deve ser pelo menos1
e o valor deMIN_NODES
.
Cancelando uma operação de atualização
Para cancelar uma operação de atualização do 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.
Observe que cancelar uma operação de atualização do pool de nós em andamento não reverterá as atualizações de nós já concluídas. Isso pode resultar em um pool de nós parcialmente atualizado.
O que vem a seguir
- Leia a documentação de referência do gcloud container azure node-pools create .
- Excluir um pool de nós .