Criar um cluster do Autopilot

Veja nesta página como criar um cluster do Google Kubernetes Engine (GKE) no modo Autopilot. O Autopilot é um modo de operação do GKE que permite que você se concentre nos serviços e aplicativos enquanto o GKE gerencia os nós e a infraestrutura. Quando você implanta as cargas de trabalho, o GKE provisiona, configura e gerencia os recursos e o hardware, incluindo o escalonamento.

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 CLI do Google Cloud para essa tarefa, instale e inicialize a gcloud CLI. 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.

Configurar contas de serviço do IAM para o GKE

O GKE usa contas de serviço do IAM anexadas aos nós para executar tarefas do sistema, como geração de registros e monitoramento. No mínimo, essas contas de serviço de nó precisam ter o papel Conta de serviço de nó padrão do Kubernetes Engine (roles/container.defaultNodeServiceAccount) no seu projeto. Por padrão, o GKE usa a conta de serviço padrão do Compute Engine, que é criada automaticamente no seu projeto, como a conta de serviço do nó.

Para conceder o papel roles/container.defaultNodeServiceAccount à conta de serviço padrão do Compute Engine, siga estas etapas:

Console

  1. Acesse a página Boas-vindas:

    Acessar "Boas-vindas"

  2. No campo Número do projeto, clique em Copiar para a área de transferência.
  3. Acesse a página do IAM:

    Acessar IAM

  4. Clique em CONCEDER ACESSO.
  5. No campo Novos principais, especifique o seguinte valor:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Substitua PROJECT_NUMBER pelo número do projeto que você copiou.
  6. No menu Selecionar um papel, escolha o papel Conta de serviço de nó padrão do Kubernetes Engine.
  7. Clique em Salvar.

gcloud

  1. Encontre o número do seu projeto Google Cloud :
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    Substitua PROJECT_ID pela ID do seu projeto.

    O resultado será assim:

    12345678901
    
  2. Conceda o papel roles/container.defaultNodeServiceAccount à conta de serviço padrão do Compute Engine:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    Substitua PROJECT_NUMBER pelo número do projeto da etapa anterior.

Criar um cluster do Autopilot

As informações mínimas que você precisa especificar ao criar um cluster do Autopilot são um nome, um projeto (geralmente o projeto atual) e uma região (geralmente a região padrão para ferramentas de linha de comando). No entanto, há muitas outras configurações possíveis, algumas das quais não podem ser alteradas após a criação do cluster. Entenda quais configurações não podem ser alteradas após a criação do cluster e escolha a configuração certa ao criar um cluster se não quiser ter que criá-lo novamente.

Confira uma visão geral das opções de configuração de cluster em Sobre as opções de configuração de clusters e uma lista completa de opções possíveis nos guias de referência do gcloud container clusters create-auto e do Terraform google_container_cluster.

É possível criar um cluster do Autopilot usando a Google Cloud CLI, o Google Cloud console ou o Terraform:

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

Substitua:

  • CLUSTER_NAME: o nome do novo cluster de Autopilot.
  • LOCATION: a região para o cluster.
  • PROJECT_ID: o ID do projeto.

Recomendamos especificar uma conta de serviço do IAM com privilégios mínimos para os nós usarem em vez da conta de serviço padrão do Compute Engine. Para saber como criar uma conta de serviço com privilégios mínimos, consulte Usar uma conta de serviço privilégio mínimo mínimos.

Para especificar uma conta de serviço personalizada na CLI gcloud, adicione a seguinte flag ao comando:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Substitua SERVICE_ACCOUNT_NAME pelo nome da sua conta de serviço com privilégios mínimos.

Para ver uma lista de outras opções que podem ser especificadas, consulte a documentação de referência de gcloud container clusters create-auto.

Console

Execute as seguintes tarefas:

  1. No Google Cloud console, acesse a página Criar um cluster do Autopilot.

    Acessar "Criar um cluster do Autopilot"

  2. Na seção Princípios básicos do cluster, conclua o seguinte:

  3. Insira o Nome do cluster.

  4. Selecione uma região para o cluster.

    1. Opcional: se você quiser registrar o novo cluster em uma frota, acesse a seção Registro da frota e siga as instruções do console Google Cloud para Criar e registrar um novo cluster e concluir o registro dele.
  5. Para a seção Rede, consulte Personalizar seu isolamento de rede para instruções de configuração.

  6. Opcionalmente, especifique uma conta de serviço do IAM personalizada para seus nós:
    1. Na página Configurações avançadas, expanda a seção Segurança.
    2. No menu Conta de serviço, selecione a conta de serviço de sua preferência.

    Recomendamos especificar uma conta de serviço do IAM com privilégios mínimos para os nós usarem em vez da conta de serviço padrão do Compute Engine. Para saber como criar uma conta de serviço com privilégios mínimos, consulte Usar uma conta de serviço privilégio mínimo mínimos.

  7. Opcionalmente, defina outras configurações, como janelas de manutenção e recursos avançados de segurança.

  8. Clique em Criar.

Terraform

Para criar um cluster do Autopilot usando o Terraform, consulte o exemplo a seguir:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  enable_autopilot = true
}

Para criar um cluster do Autopilot que usa uma conta de serviço personalizada do IAM, siga estas etapas:

  1. Crie uma conta de serviço do IAM e conceda a ela o papel roles/container.defaultNodeServiceAccount no projeto:

    resource "google_service_account" "default" {
      account_id   = "gke-node-service-account"
      display_name = "GKE node service account"
    }
    
    data "google_project" "project" {
    }
    
    resource "google_project_iam_member" "default" {
      project = data.google_project.project.project_id
      role    = "roles/container.defaultNodeServiceAccount"
      member  = "serviceAccount:${google_service_account.default.email}"
    }
  2. Crie um cluster do Autopilot que use a nova conta de serviço:

    resource "google_container_cluster" "default" {
      name     = "autopilot-custom-account"
      location = "us-central1"
    
      enable_autopilot = true
    
      cluster_autoscaling {
        auto_provisioning_defaults {
          service_account = google_service_account.default.email
        }
      }
    }

Para saber mais como usar o Terraform, consulte o Suporte do Terraform para GKE.

Criar um cluster do Autopilot com um canal de lançamento e uma versão específicos

Por padrão, o GKE inscreve novos clusters do Autopilot no canal de lançamento normal, com a versão padrão do GKE no canal. É possível mudar o canal de lançamento ao criar um cluster do Autopilot usando a CLI gcloud, o Google Cloud console ou o Terraform.

Também é possível definir uma versão específica do GKE ao criar um cluster usando a gcloud CLI. A definição da versão do cluster só é útil se você tiver um requisito de versão específico. Para definir a versão do cluster, especifique a flag --cluster-version no comando gcloud container clusters create-auto. A versão especificada precisa ser uma versão do GKE disponível.

As instruções a seguir para definir o canal de lançamento e a versão são opcionais. A menos que você precise de uma versão específica do GKE, mantenha a configuração padrão do canal de lançamento.

gcloud

Execute este comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --release-channel=RELEASE_CHANNEL

Substitua RELEASE_CHANNEL pelo nome do canal de lançamento para o cluster. O padrão é Regular.

Também é possível especificar --cluster-version=CLUSTER_VERSION, substituindo CLUSTER_VERSION pela versão para o cluster, como 1.29.4-gke.1043002. A versão especificada se aplica até que uma versão mais recente se torne o padrão no seu canal de lançamento. O GKE faz upgrade automaticamente do cluster para a nova versão padrão. Se você omitir essa flag, O GKE define a versão como a versão padrão do canal de lançamento.

Para verificar as versões disponíveis, consulte Quais versões estão disponíveis em um canal?. É possível executar qualquer versão secundária no canal selecionado ou escolher um subconjunto de versões de patch de outros canais.

Console

Para definir o canal de lançamento ao criar um cluster do Autopilot, faça o seguinte:

  1. No Google Cloud console, acesse a página Criar um cluster do Autopilot.

    Acessar "Criar um cluster do Autopilot"

  2. Na seção Princípios básicos do cluster, conclua o seguinte:

    1. Especificar um nome
    2. Selecione uma Região.
  3. Na seção Configurações avançadas, escolha um canal de lançamento.

  4. Se quiser, defina outras configurações para o novo cluster.

  5. Clique em Criar.

Terraform

Para definir o canal de lançamento e a versão do cluster ao criar um cluster do Autopilot usando o Terraform, consulte o exemplo a seguir:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-release-channel"
  location = "us-central1"

  enable_autopilot = true

  release_channel {
    channel = "REGULAR"
  }
}

Para saber mais como usar o Terraform, consulte o Suporte do Terraform para GKE.

Também é possível alterar o canal de lançamento e a versão do GKE para clusters existentes. Para ver instruções, consulte Como fazer upgrade manual de um plano de controle e Como selecionar um novo canal de lançamento.

Conexão ao cluster

gcloud

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

Esse comando configura kubectl para usar o cluster que você criou.

Console

  1. Na lista de clusters, além do cluster ao qual você quer se conectar, clique em Ações e, em seguida, em Conectar.

  2. Clique em Executar no Cloud Shell quando solicitado. O comando gerado é copiado no Cloud Shell, por exemplo:

    gcloud container clusters get-credentials autopilot-cluster --location=us-central1 --project=autopilot-test
    
  3. Pressione Enter para executar o comando.

Verificar o modo do cluster

Verifique se o cluster é do Autopilot usando a CLI gcloud ou o console Google Cloud .

gcloud

Para verificar se o cluster foi criado no modo Autopilot, execute o seguinte comando:

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION

A saída contém o seguinte:

autopilot:
  enabled: true

Console

Para verificar se o cluster foi criado no modo Autopilot, faça o seguinte:

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

    Acessar o Google Kubernetes Engine

  2. Encontre o cluster na lista de clusters. Em Modo, deve estar escrito Autopilot.

A seguir