Crie um cluster do Autopilot


Esta página explica como criar um cluster do Google Kubernetes Engine (GKE) no modo Autopilot. O Autopilot é um modo de funcionamento do GKE que lhe permite focar-se nos seus serviços e aplicações, enquanto o GKE gere os seus nós e infraestrutura. Quando implementa as suas cargas de trabalho, o GKE aprovisiona, configura e gere os recursos e o hardware, inclusive quando dimensiona.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Configure contas de serviço IAM para o GKE

O GKE usa contas de serviço da IAM anexadas aos seus nós para executar tarefas do sistema, como registo e monitorização. No mínimo, estas contas de serviço de nós têm de ter a função Conta de serviço de nós predefinida do Kubernetes Engine (roles/container.defaultNodeServiceAccount) no seu projeto. Por predefinição, o GKE usa a conta de serviço predefinida do Compute Engine, que é criada automaticamente no seu projeto, como a conta de serviço do nó.

Para conceder a função roles/container.defaultNodeServiceAccount à conta de serviço predefinida do Compute Engine, conclua os passos seguintes:

consola

  1. Aceda à página Boas-vindas:

    Aceder a Boas-vindas

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

    Aceda ao IAM

  4. Clique em Conceder acesso.
  5. No campo Novos responsáveis, especifique o seguinte valor:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Substitua PROJECT_NUMBER pelo número do projeto que copiou.
  6. No menu Selecionar uma função, selecione a função Conta de serviço do nó predefinido do Kubernetes Engine.
  7. Clique em Guardar.

gcloud

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

    Substitua PROJECT_ID pelo ID do seu projeto.

    O resultado é semelhante ao seguinte:

    12345678901
    
  2. Conceda a função roles/container.defaultNodeServiceAccount à conta de serviço predefinida 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 do passo anterior.

Crie um cluster do Autopilot

As informações mínimas que tem de especificar quando cria um novo cluster do Autopilot são um nome, um projeto (normalmente, o projeto atual) e uma região (normalmente, a região predefinida para ferramentas de linha de comandos). No entanto, existem muitas mais definições de configuração possíveis, algumas das quais não podem ser alteradas após a criação do cluster. Certifique-se de que compreende que definições não podem ser alteradas após a criação do cluster e que escolhe a definição certa quando cria um cluster, se não quiser ter de o criar novamente.

Pode ver uma vista geral das opções de configuração de clusters em Acerca das opções de configuração de clusters e uma lista completa das opções possíveis nos guias de referência do gcloud container clusters create-auto e do Terraform google_container_cluster.

Pode criar um cluster do Autopilot através da CLI do Google Cloud, da Google Cloud consola ou do Terraform:

gcloud

Execute o seguinte comando:

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

Substitua o seguinte:

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

Recomendamos vivamente que especifique uma conta de serviço do IAM com privilégios mínimos que os seus nós possam usar em vez da conta de serviço predefinida do Compute Engine. Para saber como criar uma conta de serviço com privilégios mínimos, consulte o artigo Use uma conta de serviço com privilégios mínimos.

Para especificar uma conta de serviço personalizada na CLI gcloud, adicione a seguinte flag ao seu 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 pode especificar, consulte a gcloud container clusters create-auto documentação de referência.

Consola

Execute as seguintes tarefas:

  1. Na Google Cloud consola, aceda à página Criar um cluster do Autopilot.

    Aceda a Crie um cluster do Autopilot

  2. Na secção Noções básicas do cluster, conclua o seguinte:

  3. Introduza o Nome do cluster.

  4. Selecione uma região para o seu cluster.

    1. Opcional (disponível com o GKE Enterprise): se quiser registar o novo cluster numa frota, aceda à secção Registo de frotas e siga as Google Cloud instruções da consola para criar e registar um novo cluster para concluir o registo do cluster.
  5. Para a secção Rede, consulte o artigo Personalize o isolamento da rede para ver instruções de configuração.

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

    Recomendamos vivamente que especifique uma conta de serviço do IAM com privilégios mínimos que os seus nós possam usar em vez da conta de serviço predefinida do Compute Engine. Para saber como criar uma conta de serviço com privilégios mínimos, consulte o artigo Use uma conta de serviço com privilégios mínimos.

  7. Opcionalmente, configure outras definições, como janelas de manutenção e funcionalidades de segurança avançadas.

  8. Clique em Criar.

Terraform

Para criar um cluster do Autopilot com o Terraform, consulte o seguinte exemplo:

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

  enable_autopilot = true
}

Para criar um cluster do Autopilot que use uma conta de serviço do IAM personalizada, siga estes passos:

  1. Crie uma conta de serviço de IAM e conceda-lhe a função 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 sobre a utilização do Terraform, consulte o artigo Compatibilidade do Terraform com o GKE.

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

Por predefinição, o GKE inscreve novos clusters do Autopilot no canal de lançamento Regular, com a versão predefinida do GKE no canal. Pode alterar o canal de lançamento quando cria um cluster do Autopilot através da CLI gcloud, da Google Cloud consola ou do Terraform.

Também pode definir uma versão específica do GKE quando cria um cluster com a CLI gcloud. A definição da versão do cluster só é útil se 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 que especificar tem de ser uma versão do GKE disponível.

As instruções seguintes para definir o canal de lançamento e a versão são opcionais. A menos que precise de uma versão específica do GKE, recomendamos que mantenha a predefinição do canal de lançamento.

gcloud

Execute o seguinte 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. A predefinição é Regular.

Opcionalmente, especifique --cluster-version=CLUSTER_VERSION, substituindo CLUSTER_VERSION pela versão do GKE para o cluster, como 1.29.4-gke.1043002. A versão que especificar aplica-se até que uma versão mais recente se torne a predefinição no seu canal de lançamento. Em seguida, o GKE atualiza automaticamente o cluster para a nova versão predefinida. Se omitir esta flag, o GKE define a versão para a versão predefinida do canal de lançamento.

Para verificar as versões disponíveis, consulte o artigo Que versões estão disponíveis num canal?. Pode executar qualquer versão secundária no canal selecionado ou escolher um subconjunto de versões de patch de outros canais.

Consola

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

  1. Na Google Cloud consola, aceda à página Criar um cluster do Autopilot.

    Aceda a Crie um cluster do Autopilot

  2. Na secção Noções básicas do cluster, conclua o seguinte:

    1. Especifique um Nome.
    2. Selecione uma região.
  3. Na secção Definições avançadas, escolha um canal de lançamento.

  4. Opcionalmente, configure outras definições para o novo cluster.

  5. Clique em Criar.

Terraform

Para definir o canal de lançamento e a versão do cluster quando cria um cluster do Autopilot com o Terraform, consulte o seguinte exemplo:

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

  enable_autopilot = true

  release_channel {
    channel = "REGULAR"
  }
}

Para saber mais sobre a utilização do Terraform, consulte o artigo Compatibilidade do Terraform com o GKE.

Também pode alterar o canal de lançamento e a versão do GKE para clusters existentes. Para obter instruções, consulte o artigo Atualizar manualmente um plano de controlo e o artigo Selecionar um novo canal de lançamento.

Estabeleça ligação ao cluster

gcloud

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

Este comando configura o kubectl para usar o cluster que criou.

Consola

  1. Na lista de clusters, junto ao cluster ao qual quer estabelecer ligação, clique em Ações e, de seguida, clique em Estabelecer ligação.

  2. Quando lhe for pedido, clique em Executar no Cloud Shell. O comando gerado é copiado para o Cloud Shell, por exemplo:

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

Valide o modo de cluster

Pode verificar se o seu cluster é um cluster do Autopilot através da CLI gcloud ou da consola 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

Consola

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

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Encontre o seu cluster na lista de clusters. Em Modo, deve indicar Autopilot.

O que se segue?