Adicione e gerenciar pools de nós

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, você vê como adicionar e executar operações em pools de nós que executam os clusters do Google Kubernetes Engine (GKE). Para aprender sobre como os pools de nós funcionam, consulte Pools de nós.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud.

Adicione um pool de nós

É possível adicionar um novo pool de nós a um cluster do GKE Standard usando a gcloud CLI ou o Console do Google Cloud. O GKE também tem o provisionamento automático de nós, que gerencia automaticamente os pools de nós no cluster com base nos requisitos de escalonamento.

Como prática recomendada nos dois casos, recomendamos criar e usar uma conta de serviço de gerenciamento de identidade e acesso (IAM, na sigla em inglês) com privilégios mínimos para os pools de nós usarem, em vez do Compute Conta de serviço padrão do mecanismo. Para instruções sobre como criar uma conta de serviço com privilégios mínimos, consulte Como aumentar a segurança do seu cluster.

gcloud

Para criar um pool de nós, execute o comando gcloud container node-pools create:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --service-account SERVICE_ACCOUNT

Substitua:

  • POOL_NAME: o nome do novo pool de nós.
  • CLUSTER_NAME: o nome do cluster atual.
  • SERVICE_ACCOUNT: o nome da conta de serviço do IAM a ser usada pelos nós. Em caso de omissão, o pool de nós usará a conta de serviço padrão do Compute Engine.

Para ver uma lista completa das sinalizações opcionais que podem ser especificadas, consulte a documentação gcloud container node-pools create.

A saída será assim:

Creating node pool POOL_NAME...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/us-central1/clusters/CLUSTER_NAME/nodePools/POOL_NAME].
NAME: POOL_NAME
MACHINE_TYPE: e2-medium
DISK_SIZE_GB: 100
NODE_VERSION: 1.21.5-gke.1302

Nesta saída, você verá detalhes sobre o pool de nós, como o tipo de máquina e a versão do GKE em execução nos nós.

Às vezes, o pool de nós é criado, mas os comandos gcloud expiram em vez de relatar o status do servidor. Para verificar o status de todos os pools de nós, incluindo aqueles que ainda não foram totalmente provisionados, use o comando a seguir:

gcloud container node-pools list --cluster CLUSTER_NAME

Console

Para adicionar um pool de nós a um cluster atual, execute as etapas a seguir:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.
  3. Clique em Adicionar pool de nós.
  4. Configure o pool de nós.
  5. No menu de navegação, clique em Segurança.
  6. No menu suspenso Conta de serviço, selecione a conta de serviço do IAM para ser usada pelo pool de nós. Por padrão, o pool de nós usa a conta de serviço padrão do Compute Engine.
  7. Clique em Criar.

Visualizar pools de nós em um cluster

gcloud

Para listar todos os pools de nós de um cluster, execute o comando gcloud container node-pools list:

gcloud container node-pools list --cluster CLUSTER_NAME

Para visualizar detalhes sobre um pool de nós específico, execute o comando gcloud container node-pools describe:

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • POOL_NAME: o nome do pool de nós a ser visualizado.

Console

Para ver os pools de nós de um cluster, siga estas etapas:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters na página do Google Kubernetes Engine, clique no nome de um cluster.
  3. Clique na guia Nós.
  4. Em Pools de nós, clique no nome do pool que você quer visualizar.

Redimensionar um pool de nós

gcloud

Para redimensionar os pools de nós de um cluster, execute o comando gcloud container clusters resize:

gcloud container clusters resize CLUSTER_NAME \
    --node-pool POOL_NAME \
    --num-nodes NUM_NODES

Substitua:

  • CLUSTER_NAME: o nome do cluster a ser redimensionado.
  • POOL_NAME: o nome do pool de nós a ser redimensionado.
  • NUM_NODES: o número de nós no pool em um cluster zonal. Se você usar clusters regionais ou de várias zonas, NUM_NODES será o número de nós para cada zona em que o pool de nós está.

Repita esse comando para cada pool de nós. Se o cluster tiver apenas um pool de nós, omita a sinalização --node-pool.

Console

Para reescalonar os pools de nós do cluster, siga estas etapas:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters da página do Google Kubernetes Engine, clique sobre o nome do cluster que você quer modificar.
  3. Clique na guia Nós.
  4. Em Pools de nós, clique no nome do pool que você quer redimensionar.
  5. Clique em Redimensionar.
  6. No campo Número de nós, insira quantos nós você quer no pool e clique em Redimensionar.
  7. Repita essa etapa para cada pool de nós conforme necessário.

Fazer upgrade de um pool de nós

Por padrão, os nós de um cluster têm o upgrade automático ativado e é recomendável que ele não seja desativado. Os upgrades automáticos de nós garantem que o plano de controle e a versão do nó do cluster permaneçam sincronizados e em conformidade com a política de desvio da versão do Kubernetes.

Com os upgrades de pool de nós do GKE, é possível escolher entre duas estratégias de upgrade configuráveis, ou seja, upgrades súbitos e upgrades azul-verde.

Escolha uma estratégia e use os parâmetros para ajustá-la de acordo com as necessidades do ambiente do cluster.

Enquanto um nó está sendo atualizado, o GKE interrompe a programação de novos pods nele e tenta programar seus pods em execução em outros nós. Isso é semelhante a outros eventos que recriam o nó, como ativar ou desativar um recurso no pool de nós.

O upgrade será concluído apenas quando todos os nós forem recriados e o cluster assumir o estado desejado. Quando um nó recém-atualizado é registrado no plano de controle, o GKE o marca como programável.

As instâncias do novo nó executam a versão do Kubernetes desejada e também:

Como fazer upgrade manual de um pool de nós

É possível fazer upgrade manual de uma versão do pool de nós para igualá-la à versão do plano de controle ou a uma versão anterior que ainda esteja disponível e seja compatível com o plano de controle. A versão do Kubernetes e a política de suporte de diferença de versão (em inglês) garantem que os planos de controle sejam compatíveis com nós de até duas versões secundárias mais antigas que o plano de controle. Por exemplo, os planos de controle do Kubernetes 1.23 são compatíveis com os nós do Kubernetes 1.21.

Quando você faz upgrade manual de um pool de nós, o GKE remove todos os rótulos adicionados a nós individuais usando kubectl. Para evitar isso, aplique rótulos aos pools de nós

É possível fazer upgrade dos pools de nós manualmente para uma versão compatível com o plano de controle usando o Console do Google Cloud ou a Google Cloud CLI.

gcloud

As variáveis a seguir são usadas nos comandos desta seção:

  • CLUSTER_NAME: o nome do cluster do pool de nós a ser atualizado.
  • NODE_POOL_NAME: o nome do pool de nós a ser atualizado.
  • VERSION: a versão do Kubernetes para que os nós são atualizados. Por exemplo, --cluster-version=1.7.2 ou cluster-version=latest.

Fazer upgrade de um pool de nós:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME

Para especificar uma versão diferente do GKE nos nós, use a sinalização opcional --cluster-version:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --cluster-version VERSION

Para mais informações sobre como especificar versões, consulte Controle de versões.

Para mais informações, consulte a documentação gcloud container clusters upgrade.

Console

Para fazer upgrade de um pool de nós com o console do Google Cloud, siga as etapas a seguir:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na página do Google Kubernetes Engine, clique no nome do cluster que você quer modificar.
  3. Na página Detalhes do cluster, clique na guia Nós.
  4. Na seção Pools de nós, clique no nome do pool que você quer atualizar.
  5. Clique em Editar.
  6. Em Versão do nó, clique em Alterar.
  7. Selecione a versão pretendida na lista suspensa Versão do nó e clique em Alterar.

Talvez leve vários minutos para que a versão do nó seja alterada.

Implantar um pod em um pool de nós específico

É possível implantar explicitamente um pod em um pool de nós específico usando um nodeSelector no manifesto do pod. nodeSelector programa pods em nós com um rótulo correspondente.

Todos os pools de nós do GKE têm rótulos com o seguinte formato: cloud.google.com/gke-nodepool: POOL_NAME. Adicione esse rótulo ao campo nodeSelector no seu pod, conforme mostrado no exemplo a seguir:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    cloud.google.com/gke-nodepool: POOL_NAME

Para mais informações, consulte Como atribuir pods a nós.

Como alternativa ao seletor de nós, é possível usar a afinidade de nó. Use essa afinidade se quiser uma regra "soft" em que o pod tenta cumprir a restrição, mas ainda seja programado, mesmo que a restrição não seja atendida. Para mais informações, consulte Afinidade de nó. Também é possível especificar solicitações de recursos nos contêineres.

Fazer downgrade de pools de nós

Excluir um pool de nós

A exclusão de um pool de nós exclui os nós e as rotas dele. Todos os pods executados nesses nós são removidos e reprogramados. Se os pods tiverem seletores de nó específicos, poderão permanecer em uma condição não programável se nenhum outro nó no cluster cumprir os critérios. Para saber mais, consulte Como excluir pools de nós.

gcloud

Para excluir um pool de nós, execute o comando gcloud container node-pools delete:

gcloud container node-pools delete POOL_NAME \
    --cluster CLUSTER_NAME

Console

Para excluir um pool de nós, siga estas etapas:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters da página do Google Kubernetes Engine, clique sobre o nome do cluster que você quer modificar.
  3. Clique na guia Nós.
  4. Em Pools de nós, clique em ao lado do pool que você quer excluir.
  5. Quando solicitado a confirmar, clique em Excluir.

A seguir