Como aplicar atualizações a pools de nós atuais


Nesta página, você vê instruções sobre como atualizar dinamicamente as tags de rede, os rótulos de nó e os taints de nó de um pool de nós atual do Google Kubernetes Engine (GKE).

Visão geral

Tags de rede são metadados em VMs do Compute Engine que permitem criar regras de firewall e rotas aplicáveis a instâncias de VM específicas. Os taints e rótulos de nós estão nos metadados de objeto dos nós do Kubernetes. Os rótulos são usados para programar pods em nós específicos, em que os taints podem ser usados para afastar os pods deles.

Com a API Kubernetes Engine, é possível aplicar atualizações a tags de rede, rótulos de nós e taints de nó de um pool de nós atual do GKE sem precisar recriar o pool de nós ou interromper a execução de cargas de trabalho. A configuração do pool de nós atualizada é preservada no GKE. Assim, os upgrades futuros do pool de nós e as novas provisões de nós no pool usarão a nova configuração.

Limitações

Há algumas limitações no uso da API Kubernetes Engine para atualizar dinamicamente as configurações do pool de nós:

  • A versão do pool de nós precisa ser posterior a 1.19.7-gke.1500.
  • As atualizações para taint e rótulos de nó não podem ser usadas em pools de nós com o escalonamento automático ativado. Como solução alternativa, primeiro desative o escalonamento automático no pool de nós antes de tentar atualizar os rótulos ou taints do pool de nós. Depois que os rótulos ou taints forem atualizados, reative o escalonamento automático. Se você estiver apenas atualizando tags de rede, o escalonamento automático não precisará ser desativado.

Como atualizar tags de rede

Para atualizar as tags de rede dos seus pools de nós, use o comando a seguir:

gcloud beta container node-pools update NODEPOOL_NAME \
    --tags=TAG1,[TAG2,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG …]

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós a ser atualizado;
  • TAG1,[TAG2,...]: os novos valores de tag desejados;
  • CLUSTER_NAME: o nome do cluster.
  • REGION: a região do Compute Engine para o cluster;
  • ZONE: a zona do Compute Engine para o cluster.

Como atualizar rótulos de nós

Para atualizar os rótulos de um pool de nós, use o seguinte comando:

gcloud beta container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG …]

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós a ser atualizado;
  • [NODE_LABEL,...]: os novos rótulos de nó desejados (por exemplo, label1=value1,label2=value2);
  • CLUSTER_NAME: o nome do cluster.
  • REGION: a região do Compute Engine para o cluster;
  • ZONE: a zona do Compute Engine para o cluster.

Como atualizar taints de nós

Para atualizar os taints de nó para um pool de nós, use o comando a seguir:

gcloud beta container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG …]

Substitua:

  • NODEPOOL_NAME: o nome do pool de nós a ser atualizado;
  • [NODE_TAINT,...]: os novos taints de nó desejados (por exemplo, key1=val1:NoSchedule,key2=val2:PreferNoSchedule).
  • CLUSTER_NAME: o nome do cluster.
  • REGION: a região do Compute Engine para o cluster;
  • ZONE: a zona do Compute Engine para o cluster.

A seguir