Como adicionar e gerenciar pools de nós

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:

Defina as configurações padrão da gcloud usando um dos métodos a seguir:

  • Use gcloud init se quiser orientações para definir os padrões.
  • Use gcloud config para definir individualmente a região, a zona e o ID do projeto.

Como usar o gcloud init

Se você receber o erro One of [--zone, --region] must be supplied: Please specify location, conclua esta seção.

  1. Execute gcloud init e siga as instruções:

    gcloud init

    Se você estiver usando SSH em um servidor remoto, utilize a sinalização --console-only para impedir que o comando inicie um navegador:

    gcloud init --console-only
  2. Siga as instruções para autorizar a gcloud a usar sua conta do Google Cloud.
  3. Crie uma nova configuração ou selecione uma atual.
  4. Escolha um projeto do Google Cloud.
  5. Escolha uma zona padrão do Compute Engine.

Como usar o gcloud config

  • Defina o ID do projeto padrão:
    gcloud config set project project-id
  • Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
    gcloud config set compute/zone compute-zone
  • Se você estiver trabalhando com clusters regionais, defina a região do Compute padrão:
    gcloud config set compute/region compute-region
  • Atualize gcloud para a versão mais recente:
    gcloud components update

Como adicionar um pool de nós

gcloud

Para criar um pool de nós, execute o comando a seguir:

gcloud container node-pools create pool-name --cluster cluster-name

Para ver a lista completa de opções, consulte a documentação do gcloud container node-pools create.

Uma solicitação node-pools create bem-sucedida retorna as informações do pool de nós:

Creating node pool example-pool...done.
Created [https://container.googleapis.com/v1/projects/kubernetes-engine-docs/zones/us-central1-f/clusters/example-cluster/nodePools/example-pool].
NAME          MACHINE_TYPE   DISK_SIZE_GB  NODE_VERSION
example-pool  e2-medium      100           1.2.4

Você criou o pool de nós. Às vezes, ele é criado com sucesso, 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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão de edição do cluster, que se parece com um lápis.

  3. Clique em Adicionar pool de nós.

  4. Configure o pool de nós como quiser.

  5. Clique em Concluído para fechar a sobreposição Adicionar pool de nós.

  6. Clique em Salvar para modificar o cluster.

Como visualizar pools de nós em um cluster

gcloud

Para listar todos os pools de nós de um cluster, execute o comando gcloud 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 node-pools describe:

gcloud container node-pools describe pool-name \
    --cluster cluster-name

Console

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

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no nome do cluster que você quer visualizar.

  3. Na seção Pool de nós, clique no ícone de revelação ao lado do pool de nós que você quer. O menu é expandido para exibir detalhes sobre o pool de nós.

  4. Clique em Concluído para sair da visão geral de detalhes do pool de nós.

Como redimensionar um pool de nós

gcloud

Para redimensionar um pool de nós, use o comando gcloud container clusters resize. Especifique o nome do cluster, o nome do pool de nós que você quer e o novo número de nós:

gcloud container clusters resize cluster-name --node-pool pool-name \
    --num-nodes num-nodes

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

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

Console

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

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão de edição do cluster, que se parece com um lápis.

  3. Na seção Pool de nós, altere o campo Tamanho para o valor pretendido. Repita essa etapa para cada pool de nós conforme necessário.

  4. Clique em Salvar.

Como fazer upgrade de um pool de nós

gcloud

Para atualizar todos os nós para a mesma versão do plano de controle, execute o comando gcloud container clusters upgrade:

gcloud container clusters upgrade cluster-name

Para atualizar um pool de nós específico, especifique o sinalizador --node-pool:

gcloud container clusters upgrade cluster-name --node-pool pool-name

Console

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

  1. Acesse o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão de edição do cluster, que se parece com um lápis.

  3. Na seção Pool de nós clique no link Alterar ao lado do campo Versão do nó no pool que você quer.

  4. Selecione a versão do Kubernetes que você quer.

  5. Leia o aviso e clique em Alterar para confirmar.

  6. Clique em Salvar para sair da tela de modificação do cluster.

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: nodepool-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: nodepool-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.

Como excluir um pool de nós

A exclusão de um pool exclui os nós e as rotas que levam a eles. 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.

gcloud

Para excluir um pool de nós, execute o comando gcloud 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 o menu do Google Kubernetes Engine no Console do Cloud.

    Acessar o menu do Google Kubernetes Engine

  2. Clique no botão de edição do cluster, que se parece com um lápis.

  3. Na seção Pools de nós, expanda o pool de nós que você quer excluir.

  4. Clique no ícone de exclusão, que tem a forma de uma lixeira.

  5. Clique em Salvar.

A seguir