Gerenciar clusters

Este documento mostra como gerenciar seus clusters no Google Kubernetes Engine (GKE). Para saber como os clusters funcionam, consulte Arquitetura de cluster.

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. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.

Ver os clusters

gcloud

  • Para ver um cluster específico, execute o seguinte comando:

    gcloud container clusters describe CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster.
    • CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do cluster. Forneça uma região para clusters regionais ou uma zona para clusters zonais.
  • Para listar todos os clusters em um projeto em qualquer região ou zona, execute o seguinte comando:

    gcloud container clusters list
    
  • Para listar clusters localizados na região ou zona específica, execute o seguinte comando:

    gcloud container clusters list \
        --location=CONTROL_PLANE_LOCATION
    

Console

Para visualizar os clusters, acesse a página do Google Kubernetes Engine no Google Cloud console.

Acessar o Google Kubernetes Engine

Para ver mais informações sobre um cluster, selecione-o na lista.

Definir um cluster padrão para kubectl

Se você tiver vários clusters, poderá definir um cluster padrão para a ferramenta de linha de comando kubectl.

Para saber mais, consulte Definir um cluster padrão para comandos kubectl.

Definir um cluster padrão para gcloud

Para definir um cluster padrão para os comandos da gcloud, execute este comando:

gcloud config set container/cluster CLUSTER_NAME

Substitua CLUSTER_NAME pelo nome do cluster.

Fazer upgrade de clusters

Por padrão, o GKE faz upgrade dos clusters automaticamente. No entanto, é possível fazer o upgrade dos clusters padrão por conta própria. Para saber mais, consulte Como fazer upgrade manual de um cluster.

Para orientações sobre como fazer upgrade de clusters, consulte Práticas recomendadas para fazer upgrade de clusters.

Adicionar ou remover zonas em um cluster padrão

Veja nas seções a seguir como adicionar ou remover zonas de cluster. Todas as zonas precisam estar na região do cluster.

Alterar zonas para clusters zonais

Para clusters zonais, é possível adicionar ou remover zonas.

gcloud

Para adicionar ou remover zonas de um cluster zonal, use o comando gcloud container clusters update:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Substitua:

  • CLUSTER_NAME: o nome escolhido para o cluster.
  • CONTROL_PLANE_LOCATION: a zona do Compute Engine do plano de controle do cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: as zonas em que os nós são criados. Especifique quantas zonas forem necessárias para o cluster. Todas as zonas precisam estar na mesma região que o plano de controle do cluster, especificado pela sinalização --location. Para clusters zonais, --node-locations precisa conter a zona principal do cluster.

Por exemplo, example-cluster é executado em us-central1-a. Para adicionar mais duas zonas ao cluster, você executaria o seguinte comando:

gcloud container clusters update example-cluster \
  --location us-central1-a
  --node-locations us-central1-a,us-central1-b,us-central1-c

Como outro exemplo, example-cluster é executado em us-central1-a, us-central1-b e us-central1-c. Se você quiser que o cluster seja executado apenas em us-central1-a e us-central1-b, execute este comando:

gcloud container clusters update example-cluster \
  --location us-central1-a \
  --node-locations us-central1-a,us-central1-b

Console

Para adicionar ou remover zonas em um cluster atual, execute as seguintes etapas:

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

    Acessar o Google Kubernetes Engine

  2. Ao lado do cluster que você quer editar, clique em Ações e, em seguida, clique em Editar.

  3. No campo Zonas de nós padrão na guia "Detalhes", clique em Editar pools de nós.

  4. Selecione as zonas desejadas e salve as alterações.

Alterar zonas para clusters regionais

Atualmente, só é possível alterar as zonas dos clusters regionais atuais usando o comando gcloud.

Para adicionar ou remover zonas de um cluster regional, use o comando gcloud container clusters update com a sinalização --node-locations:

gcloud container clusters update CLUSTER_NAME \
  --location CONTROL_PLANE_LOCATION \
  --node-locations COMPUTE_ZONE1,COMPUTE_ZONE2

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a região do Compute Engine do plano de controle do seu cluster.
  • COMPUTE_ZONE1,COMPUTE_ZONE2,[...]: a região do plano de controle das zonas em que os nós são criados. As zonas precisam estar no mesmo CONTROL_PLANE_LOCATION que os planos de controle do cluster, especificados pela sinalização --location.

Por exemplo, example-cluster é executado em us-central1-a e us-central1-b. Para adicionar us-central1-c, você executaria este comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b,us-central1-c

Como outro exemplo, example-cluster é executado em us-central1-a, us-central1-b e us-central1-c. Se você quiser que o cluster seja executado apenas em us-central1-a e us-central1-b, execute este comando:

gcloud container clusters update example-cluster \
  --location us-central1 \
  --node-locations us-central1-a,us-central1-b

Redimensionar clusters

É possível redimensionar um cluster padrão para aumentar ou diminuir o número de nós. Por exemplo, se você quiser impedir o cluster de consumir recursos sem excluí-lo, será possível redimensionar os nós para zero. Para saber mais sobre isso, consulte Como redimensionar um cluster.

Os clusters de Autopilot são dimensionados automaticamente com base nas especificações do pod, portanto, o redimensionamento do cluster não é algo com que você precise se preocupar. Por exemplo, se você alterar o número de réplicas do pod ou os recursos solicitados, o cluster será ampliado ou reduzido de maneira adequada.

Se você quiser uma maneira mais eficiente de otimizar os clusters, também é possível usar o Escalonamento automático do pod vertical (VPA, na sigla em inglês). O escalonador automático recomenda valores para essas solicitações e limites ou atualiza automaticamente os valores.

Excluir clusters

Quando necessário, é possível excluir um cluster. Para saber mais, consulte Como excluir um cluster.

Impedir a exclusão de clusters usando políticas de negação

É possível usar políticas de negação do IAM para impedir a exclusão de determinados clusters críticos, independentemente de qual principal tentar a exclusão. Para segmentar clusters específicos em uma política de negação, adicione uma tag a esses clusters. Em seguida, use uma condição de negação para aplicar a política de negação apenas aos clusters que têm essa tag.

Para proteger um cluster específico contra exclusão, siga estas etapas:

  1. Crie e defina uma chave de tag para identificar clusters protegidos. Por exemplo, é possível criar uma chave de tag chamada do_not_delete.

  2. Anexe a chave de tag ao cluster.

  3. Crie uma política de negação do IAM selecionando uma das seguintes opções:

    Console

    1. No Google Cloud console, acesse a guia Negar na página IAM.

      Acessar a negação do IAM

    2. Clique em Criar política de negação. A página Criar política de negação será aberta.

    3. No campo ID , especifique um ID exclusivo e imutável para sua política de negação.

    4. Na seção Nova regra de negação, faça o seguinte:

      1. No campo Principais negados, especifique principalSet://goog/public:all, que abrange qualquer principal.

      2. Na seção Permissões negadas, na lista suspensa Permissão 1, encontre e selecione a permissão container.googleapis.com/clusters.delete.

      3. Clique em Adicionar condição de negação. O painel Adicionar condição de negação será aberto.

      4. Especifique um título informativo para a condição, como Cluster has the do_not_delete tag.

      5. Na guia Criador de condições, na lista suspensa Tipo de condição 1, selecione Tag.

      6. Na lista suspensa Operador, selecione Tem chave.

      7. Na lista suspensa Caminho da chave, selecione a chave de tag que você aplicou ao cluster, como do_not_delete.

      8. Clique em Salvar.

    5. Clique em Criar.

    gcloud

    1. Crie um arquivo JSON que contenha a seguinte política de negação:

      {
        "displayName": "Prevent cluster deletion based on tag",
        "rules": [
          {
            "description": "Prevent cluster deletion based on tag",
            "deniedPrincipals": [
              "principalSet://goog/public:all"
            ],
            "deniedPermissions": [
              "container.googleapis.com/clusters.delete"
            ],
            "denialCondition": {
              "title": "Cluster has the do_not_delete tag",
              "expression": "resource.hasTagKey('TAG_KEY_NAME')
            }
          }
        ]
      }
      

      Substitua TAG_KEY_NAME pelo caminho da chave de tag que você criou.

    2. Crie a política de negação usando o gcloud iam policies create comando:

      gcloud iam policies create POLICY_ID \
          --attachment-point=ATTACHMENT_POINT \
          --kind=denypolicies --policy-file=POLICY_FILE
      

      Substitua:

      • POLICY_ID: um ID para sua política de negação.
      • ATTACHMENT_POINT: a organização, pasta ou projeto a que a política de negação será anexada. Por exemplo, se você anexar a política de negação a uma pasta, ela será aplicada a clusters em qualquer projeto nessa pasta. Para mais informações, consulte Ponto de anexação.
      • POLICY_FILE: o caminho para o arquivo JSON que você criou na etapa anterior.

Depois de criar a política de negação, ninguém poderá excluir um cluster que tenha a chave de tag especificada na condição de negação. Qualquer tentativa de excluir o cluster falha com uma mensagem de erro Permission denied. Para permitir a exclusão do cluster, é necessário desanexar essa chave de tag do cluster.

Adicionar clusters a uma frota

Caso sua organização use vários clusters, simplifique o gerenciamento de vários clusters adicionando-os a uma frota: um agrupamento lógico de clusters do Kubernetes. Criar uma frota ajuda sua organização a melhorar o gerenciamento de clusters individuais para grupos inteiros de clusters e permite usar recursos ativados para frotas como Ingress de vários clusters, Config Sync e Controlador de Políticas.

É possível adicionar clusters do GKE a uma frota usando o Google Cloud console, a CLI gcloud ou de maneira declarativa usando o Terraform ou o Config Connector.

Saiba mais sobre como as frotas funcionam no Gerenciamento de frotas e sobre a criação delas em Criar frotas para simplificar o gerenciamento de vários clusters.

A seguir