Nesta página, mostramos como configurar upgrades automáticos de nós no Google Kubernetes Engine (GKE).
Visão geral
Com os upgrades automáticos de nós, os nós do cluster acompanham a
versão do plano de controle do cluster quando o plano de controle é
atualizado em nome do usuário.
Quando você cria um novo cluster ou pool de nós com o console do Google Cloud ou com o comando gcloud
, o upgrade automático de nós é ativado por padrão.
Saiba mais sobre upgrades de nós e clusters.
Os upgrades automáticos de nós oferecem vários benefícios:
- Menor sobrecarga no gerenciamento: não é preciso rastrear e atualizar manualmente os nós quando o plano de controle recebe um upgrade em seu nome.
- Mais segurança: às vezes, novos binários são lançados para corrigir um problema de segurança. Com upgrades automáticos, o GKE garante automaticamente que as atualizações de segurança sejam aplicadas e atualizadas.
- Facilidade de uso: fornece uma maneira simples de manter seus nós atualizados com os recursos mais recentes do Kubernetes.
Pools de nós com upgrades automáticos ativados são programados para upgrades quando satisfazem os critérios de seleção (anunciados nas notas de lançamento). Os lançamentos são divididos em várias semanas para garantir a estabilidade do cluster e da frota. Quando o upgrade é realizado, os nós são esvaziados e recriados para corresponder à versão atual do plano de controle. As modificações no disco de inicialização da VM do nó não são mantidas na recriação dos nós. Para manter as modificações durante a recriação dos nós, DaemonSet.
O upgrade automático de nós não está disponível para clusters Alfa. Se você estiver usando um cluster com pools de nós do Windows Server, consulte Como fazer upgrade dos pools de nós do Windows Server antes de ativar o upgrade automático de nós.
Verificar o estado do upgrade automático de um pool de nós
É possível verificar se o upgrade automático está ativado ou desativado para um pool de nós usando
o console do Google Cloud ou o comando gcloud
.
gcloud
Para verificar o estado do upgrade automático de um pool de nós, execute o comando a seguir:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE
Substitua:
NODE_POOL_NAME
: o nome do pool de nós.CLUSTER_NAME
: o nome do cluster que contém o pool de nós.COMPUTE_ZONE
: a zona do Compute para o cluster.
Console
Para verificar o estado do upgrade automático de um pool de nós, faça o seguinte:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster que você quer ver.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer visualizar.
Na página Detalhes do pool de nós, em Gerenciamento, veja o valor do campo Upgrade automático.
Ativar upgrades automáticos de nós para um pool de nós
Quando você cria um novo cluster com o console do Google Cloud ou com o comando gcloud
,
o upgrade automático de nós é ativado por padrão.
É possível ativar o upgrade automático de nós se ele estiver desativado.
gcloud
Para ativar os upgrades automáticos para um pool de nós atual, execute o comando abaixo:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Substitua:
NODE_POOL_NAME
: o nome do pool de nós.CLUSTER_NAME
: o nome do cluster que contém o pool de nós.COMPUTE_ZONE
: a zona do Compute para o cluster.
Console
Para ativar upgrades automáticos para um pool de nós atual, execute as etapas abaixo:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer modificar.
Na página Detalhes do pool de nós, clique em edit Editar.
Em Gerenciamento, marque a caixa de seleção Ativar upgrade automático.
Clique em Salvar.
Para ter mais controle sobre quando os nós podem ser atualizados automaticamente, considere configurar janelas de manutenção e exclusões.
Verificar o status dos upgrades de nó
É possível verificar o status de um upgrade usando gcloud container operations
.
Veja uma lista de todas as operações em execução e concluídas no cluster:
gcloud container operations list
Cada operação recebe um código e um tipo, além de horários de início e término, cluster de destino e status. A lista é semelhante ao exemplo a seguir:
NAME TYPE ZONE TARGET STATUS_MESSAGE STATUS START_TIME END_TIME
operation-1505407677851-8039e369 CREATE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT16:47:57.851933021Z 20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4 UPGRADE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:40:05.136739989Z 20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989 DELETE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:41:53.918825764Z 20xx-xx-xxT18:43:48.639506814Z
Para ver mais informações sobre uma operação específica, informe o ID da operação, conforme mostrado no comando a seguir:
gcloud container operations describe OPERATION_ID
Exemplo:
gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a
Verificar as configurações de upgrade do pool de nós
É possível ver detalhes sobre a estratégia de upgrade de nós que está sendo usada para os pools de nós usando o comando gcloud container node-pools
describe
. Para upgrades em azul-verde, o comando também retorna a fase atual do upgrade.
Execute este comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Substitua:
NODE_POOL_NAME
: o nome do pool de nós a ser descrito.CLUSTER_NAME
: o nome do cluster do pool de nós a ser descrito.
Este comando exibirá as configurações de upgrade atuais. No exemplo a seguir, a saída será exibida se você estiver usando a estratégia de upgrade azul-verde.
upgradeSettings:
blueGreenSettings:
nodePoolSoakDuration: 1800s
standardRolloutPolicy:
batchNodeCount: 1
batchSoakDuration: 10s
strategy: BLUE_GREEN
Se você estiver usando a estratégia de upgrade azul-verde, a saída também incluirá detalhes sobre as configurações de upgrade azul-verde e a fase intermediária atual. O exemplo a seguir mostra como isso pode ser feito:
updateInfo:
blueGreenInfo:
blueInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
greenInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME}
greenPoolVersion: {GREEN_POOL_VERSION}
phase: DRAINING_BLUE_POOL
Desativar upgrades automáticos do nó
Embora não seja recomendado, você poderá desativar o upgrade automático de nós para um pool de nós se o cluster subjacente não estiver inscrito em um canal de lançamento.
Considerações antes de desativar os upgrades automáticos de nós
Se você desativar os upgrades automáticos de nós para um pool de nós, o GKE não atualizará a versão deles. Desativar os upgrades automáticos de nós não impede que o GKE faça upgrade do plano de controle do cluster.
A desativação impede atualizações de versão, mas não todas as tarefas de manutenção
Desativar os upgrades automáticos de nós impede apenas que o GKE atualize a versão dos nós, mas não impede que o GKE inicie outras tarefas de manutenção. Por exemplo, mesmo com upgrades automáticos de nós desativados, acionar Rotação de endereços IP ,ativação da política de rede ou migração de PSC em um cluster recria todos os nós na mesma versão que o plano de controle, independente da versão selecionada para o pool de nós. Para controlar o tempo da manutenção, use Janelas e exclusões de manutenção.
Desativar significa a responsabilidade pela compatibilidade dos nós do plano de controle
Ao fazer isso, você precisa garantir que os nós do cluster executem uma versão compatível com a versão do cluster e que a versão esteja em conformidade com a versão do Kubernetes e a política de suporte de diferença de versão (em inglês). A partir da versão 1.19, o GKE faz upgrade dos nós que estão executando uma versão sem suporte depois que a versão atinge o fim da vida útil. Isso garante a integridade e o alinhamento do cluster com a política de desvio da versão de código aberto. Os nós que executam versões sem suporte não podem ser atualizados imediatamente após o fim do suporte da versão, e o tempo real pode variar a critério do Google.
A desativação não interrompe as operações em andamento
Desativar os upgrades automáticos de nós não interrompe nem cancela upgrades em andamento para nós em pools de nós. Para cancelar ou interromper upgrades em andamento, consulte Como cancelar um upgrade de nós. Cancelar um upgrade de nó pode ser útil em situações em que você encontra falhas nas cargas de trabalho em nós atualizados e quer evitar mais interrupções.
Se o upgrade estiver totalmente concluído para todo o pool de nós, ele não poderá ser revertido nem cancelado. Para fazer downgrade do pool de nós, consulte Como fazer downgrade de pools de nós.
Ativar upgrades automáticos de nós para um pool de nós
gcloud
Para desativar upgrades automáticos para um pool de nós existente, execute o comando abaixo:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--no-enable-autoupgrade
Console
Para desativar upgrades automáticos para um pool de nós atual, execute as etapas abaixo:
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique na guia Nós.
Em Pools de nós, clique no nome do pool que você quer modificar.
Na página Detalhes do pool de nós, clique em edit Editar.
Em Gerenciamento, desmarque a caixa de seleção Ativar upgrade automático.
Clique em Salvar para modificar o cluster.
Criar um cluster ou pool de nós com upgrades automáticos de nós ativados
gcloud
Para criar um cluster com os upgrades automáticos ativados para o pool de nós padrão, especifique a sinalização --enable-autoupgrade
no comando gcloud container clusters
create
:
gcloud container clusters create CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Para criar um pool de nós com o upgrade automático ativado, especifique a
sinalização --enable-autoupgrade
no comando gcloud container node-pools create
:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Console
Os clusters e os pools de nós criados com o console do Google Cloud têm os upgrades automáticos ativados por padrão. Acesse Como criar um cluster ou Como adicionar e gerenciar pools de nós para ver instruções sobre como criar clusters e pools de nós.
É possível desativar upgrades automáticos para novos pools de nós. Na página de criação do cluster, clique no nome do pool de nós que você quer modificar e desmarque a opção Ativar upgrade automático.
Receber notificações de upgrade
O GKE publica notificações de upgrade no Pub/Sub, fornecendo um canal para receber informações do GKE sobre seus clusters.
Para mais informações, consulte Como receber notificações de upgrade de cluster.
Mudar os parâmetros de upgrade súbito
Para saber mais sobre como alterar os parâmetros de upgrade de sobretensão, consulte Configurar upgrades de sobrecarga.
Controle de exercícios durante um upgrade do pool de nós
Durante os upgrades automáticos e de pool de nós iniciados manualmente, as seguintes ações podem ser realizadas.
Cancelar um upgrade do pool de nós
Você pode cancelar um upgrade a qualquer momento. Para saber mais sobre o que acontece quando você cancela um upgrade súbito, consulte Cancelar um upgrade súbito. Para saber mais sobre o que acontece quando você cancela um upgrade azul-verde, consulte Cancelar um upgrade azul-verde.
Consiga o ID da operação de upgrade:
gcloud container operations list
Cancelar o upgrade:
gcloud container operations cancel OPERATION_ID
Consulte a
documentação
gcloud container operations cancel
.
Retomar um upgrade do pool de nós
É possível retomar um upgrade iniciando-o manualmente novamente, especificando a versão de destino do upgrade original.
Por exemplo, se você pausou um upgrade em andamento para a versão 1.23.1-gke.100, é possível retomar o upgrade cancelado iniciando o mesmo upgrade novamente no pool de nós, segmentando a versão 1.23.1-gke.100.
Para saber mais sobre o que acontece quando você retoma um upgrade, consulte Retomar um upgrade súbito e Upgrade azul-verde.
Para retomar um upgrade, use o seguinte comando:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--cluster-version VERSION
Substitua:
NODE_POOL_NAME
: o nome do pool de nós em que você quer retomar o upgrade dele.CLUSTER_NAME
: o nome do cluster do pool de nós em que você quer retomar o upgrade.VERSION
: a versão de destino do upgrade do pool de nós cancelado.
Para mais informações, consulte a
documentação gcloud container clusters upgrade
.
Reverter um upgrade do pool de nós
É possível reverter um pool de nós para fazer downgrade dos nós atualizados para o estado original antes do início do upgrade.
Use o comando rollback
se um upgrade em andamento tiver sido cancelado, tiver ocorrido falha no upgrade ou ele estiver incompleto devido a uma janela de manutenção
tempo limite. Como alternativa, se você quiser especificar a versão, siga as
instruções para fazer downgrade
do pool de nós.
Para saber mais sobre o que acontece quando você reverte um upgrade de pool de nós, consulte Reverter um upgrade súbito ou Reverter um upgrade azul-verde.
Para reverter um upgrade, execute o seguinte comando:
gcloud container node-pools rollback NODE_POOL_NAME \
--cluster CLUSTER_NAME
Substitua:
NODE_POOL_NAME
: o nome do pool de nós para reverter o upgrade do pool de nós.CLUSTER_NAME
: o nome do cluster do pool de nós para onde reverter o upgrade.
Consulte a documentação
gcloud container node-pools rollback
.
Concluir um upgrade do pool de nós
Se você estiver usando a estratégia de upgrade azul-verde, poderá concluir um upgrade do pool de nós durante a fase de imersão, pulando o restante do tempo de imersão.
Para saber como fazer um upgrade do pool de nós, consulte Concluir um upgrade do pool de nós.
Para concluir um upgrade usando a estratégia azul-verde, execute o seguinte comando:
gcloud container node-pools complete-upgrade NODE_POOL_NAME \
--cluster CLUSTER_NAME
Substitua:
NODE_POOL_NAME
: o nome do pool de nós em que você quer concluir o upgrade.CLUSTER_NAME
: o nome do cluster do pool de nós para o qual você quer concluir o upgrade.
Consulte a documentação
gcloud container node-pools complete-upgrade
.
A seguir
- Saiba mais sobre pools de nós.
- Saiba mais sobre os upgrades de cluster e de nó.
- Saiba como fazer o upgrade manual de um cluster ou pool de nós.