Criar clusters e pools de nós padrão com nós do Arm

Nesta página, explicamos como criar um cluster GKE Standard ou um pool de nós com os nós do Arm para executar cargas de trabalho do Arm no Google Kubernetes Engine (GKE). Para saber como implantar cargas de trabalho do Arm em clusters do Autopilot, consulte Implantar cargas de trabalho do Autopilot na arquitetura do Arm.

É possível criar clusters com nós Arm usando a série de máquinas C4A ou Tau T2A. Para saber mais sobre os benefícios do Arm e escolher a melhor série de máquinas para suas cargas de trabalho, consulte VMs Arm no Compute.

Com o GKE, é possível criar um cluster que tenha pools de nós com um tipo de arquitetura (por exemplo, Arm) ou vários tipos de arquitetura (por exemplo, Arm e x86). Ao executar nós com vários tipos de arquitetura, é possível implantar cargas de trabalho entre arquiteturas no mesmo cluster.

Esta página é destinada a operadores e desenvolvedores que provisionam e configuram recursos de nuvem e implantam cargas de trabalho. Para saber mais sobre papéis comuns, consulte Tarefas e funções de usuário comuns do GKE.

Antes de ler esta página, familiarize-se com as cargas de trabalho do Arm no GKE.

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 com um pool de nós do Arm

As instruções a seguir explicam como criar um novo cluster com um pool de nós que execute nós do Arm na série de máquinas C4A ou Tau T2A.

É possível usar a CLI gcloud, o console Google Cloud ou o Terraform para criar o cluster.

gcloud

Crie um novo cluster zonal com o pool de nós padrão usando nós do Arm:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES

Substitua:

  • CLUSTER_NAME: o nome do novo cluster com um Pool de nós do Arm.
  • 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. A região ou zona selecionada precisa ser um dos locais disponíveis para a série de máquinas Arm escolhida.
  • NODE_LOCATIONS: as zonas do pool de nós, como us-central1-a. É preciso escolher as zonas disponíveis para a série de máquinas Arm ou a criação pool de nós pode falhar.
  • ARM_MACHINE_TYPE: uma das formas de máquina C4A ou T2A disponíveis, como c4a-standard-8 ou t2a-standard-16.
  • NUM_NODES: o número de nós do pool de nós do Arm.

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.

Se você quiser definir mais configurações do cluster, consulte a referência gcloud container clusters create para ver uma lista completa das configurações disponíveis na criação do cluster.

Console

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

    Acessar "Criar um cluster do Kubernetes"

  2. Configure seu cluster. Para mais informações, consulte as instruções para Criar um cluster zonal ou Como criar um cluster regional.

  3. Escolha um local em que os nós do Arm estejam disponíveis.

    1. Na seção Princípios básicos do cluster, em Tipo de local, escolha "Zonal" ou "Regional":
    2. No menu suspenso, escolha uma zona ou região onde os nós do Arm estão disponíveis.
    3. Marque a caixa para Especificar os locais padrão dos nós. Selecione as zonas em que os nós do Arm estão disponíveis.
  4. Para selecionar um tipo de máquina do Arm, na subseção Nós, em Definir configurações do nó > Configuração da máquina > Família da máquina, selecione USO GERAL. No menu suspenso Série, selecione C4A ou T2A. No menu suspenso Tipo de máquina, escolha uma das opções disponíveis.

  5. 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.

  6. Clique em Criar.

Terraform

Para criar um cluster zonal com o pool de nós padrão que usam nós ARM pelo Terraform, consulte o exemplo a seguir:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-arm-cluster"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-f"]
  initial_node_count = 2

  node_config {
    machine_type    = "t2a-standard-1"
    service_account = google_service_account.default.email
  }
}

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

Adicionar um pool de nós do Arm a um cluster do GKE

É possível adicionar um novo pool de nós a um cluster do GKE Standard usando CLI gcloud, o console Google Cloud ou o Terraform.

Como prática recomendada para criar um cluster do GKE usando qualquer tipo de nós, recomendamos criar e usar uma conta de serviço do Identity and Access Management (IAM) com privilégios mínimos para os pools de nós usarem no lugar da conta de serviço padrão do Compute Engine.

Para instruções sobre como criar uma conta de serviço com privilégios mínimos, consulte Como aumentar a segurança do cluster.

gcloud

Adicione um pool de nós do Arm a um cluster:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES \
    --service-account SERVICE_ACCOUNT

Substitua:

  • NODE_POOL_NAME: o nome do novo pool de nós do Arm 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.
  • CLUSTER_NAME: o nome do cluster em que você quer adicionar um pool de nós do Arm.
  • NODE_LOCATIONS: as zonas do pool de nós, como us-central1-a. É preciso escolher as zonas disponíveis para a série de máquinas Arm ou a criação pool de nós pode falhar.
  • ARM_MACHINE_TYPE: uma das formas de máquina C4A ou T2A disponíveis, como c4a-standard-8 ou t2a-standard-16.
  • NUM_NODES: o número de nós do pool de nós do Arm.

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.

Se você quiser definir mais configurações para o pool de nós, consulte a referência gcloud container node-pools create para ver uma lista completa de configurações disponíveis na criação do pool de nós.

Console

Para adicionar um pool de nós do Arm a um cluster atual, execute as seguintes etapas:

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

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Clique em Adicionar pool de nós.

  4. Configure o pool de nós.

  5. Escolha os locais dos nós em que os nós do Arm estão disponíveis.

    1. Na seção Detalhes do pool de nós, marque a caixa Especificar locais do nó.
    2. Selecione as zonas em que os nós do Arm estão disponíveis.
  6. Para selecionar um tipo de máquina do Arm, na subseção Nós, em Definir configurações do nó > Configuração da máquina > Família da máquina, selecione USO GERAL. No menu suspenso Série, selecione C4A ou T2A. No menu suspenso Tipo de máquina, escolha uma das opções disponíveis.

  7. No menu de navegação, clique em Segurança.

  8. 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.

  9. Clique em Criar para adicionar o pool de nós.

Terraform

Para adicionar um pool de nós que usa nós ARM a um cluster já existente pelo Terraform, consulte o exemplo a seguir:

resource "google_container_node_pool" "default" {
  name           = "gke-standard-zonal-arm-node-pool"
  cluster        = google_container_cluster.default.id
  node_locations = ["us-central1-a"]
  node_count     = 1

  node_config {
    machine_type = "t2a-standard-1"

    service_account = google_service_account.default.email
  }
}

Substitua google_container_cluster.default.id pelo nome do cluster.

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

A seguir