Crie clusters padrão e node pools com nós Arm

Esta página explica como criar um cluster padrão do GKE ou um conjunto de nós com nós Arm para poder executar cargas de trabalho Arm no Google Kubernetes Engine (GKE). Para saber como implementar cargas de trabalho Arm em clusters do Autopilot, consulte o artigo Implemente cargas de trabalho do Autopilot na arquitetura Arm.

Pode criar clusters com nós Arm usando a série de máquinas C4A ou a série de máquinas Tau T2A. Para saber mais acerca das vantagens do Arm e escolher a melhor série de máquinas para as suas cargas de trabalho, consulte o artigo VMs Arm no Compute.

Com o GKE, pode criar um cluster com pools de nós com um tipo de arquitetura (por exemplo, Arm) ou vários tipos de arquitetura (por exemplo, Arm e x86). Quando executa nós com vários tipos de arquitetura, pode implementar cargas de trabalho em arquiteturas no mesmo cluster.

Esta página destina-se a operadores e programadores que preparam e configuram recursos na nuvem que implementam cargas de trabalho. Para saber mais acerca das funções comuns, consulte o artigo Funções e tarefas comuns do utilizador do GKE.

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

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 com um node pool Arm

As instruções seguintes explicam como criar um novo cluster com um conjunto de nós que executa nós Arm a partir da série de máquinas C4A ou da série de máquinas Tau T2A.

Pode usar a CLI gcloud, a Google Cloud consola ou o Terraform para criar o cluster.

gcloud

Crie um novo cluster zonal com o conjunto de nós predefinido através de nós 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 o seguinte:

  • CLUSTER_NAME: o nome do novo cluster com um grupo de nós Arm.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais. A região ou a zona selecionada tem de ser uma das localizações disponíveis para a série de máquinas Arm que escolher.
  • NODE_LOCATIONS: as zonas do seu conjunto de nós, como us-central1-a. Tem de escolher entre as zonas disponíveis para a série de máquinas Arm, caso contrário, a criação do conjunto de nós pode falhar.
  • ARM_MACHINE_TYPE: uma das formas de máquinas C4A ou formas de máquinas T2A disponíveis, como c4a-standard-8 ou t2a-standard-16.
  • NUM_NODES: o número de nós para o seu grupo de nós Arm.

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.

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

Consola

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

    Aceda a Crie um cluster do Kubernetes

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

  3. Escolha uma localização onde os nós Arm estejam disponíveis.

    1. Na secção Noções básicas do cluster, em Tipo de localização, escolha Zonal ou Regional:
    2. No menu pendente, escolha uma zona ou uma região onde os nós Arm estão disponíveis.
    3. Selecione a caixa para Especificar localizações de nós predefinidas. Selecione as zonas onde os nós Arm estão disponíveis.
  4. Para selecionar um tipo de máquina Arm, na subsecção Nós, em Configurar definições do nó > Configuração da máquina > Família de máquinas, selecione GERAL. No menu pendente Série, selecione C4A ou T2A. No menu pendente Tipo de máquina, escolha entre as opções disponíveis.

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

  6. Clique em Criar.

Terraform

Para criar um cluster zonal com o node pool predefinido usando nós Arm com o Terraform, consulte o seguinte exemplo:

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 sobre a utilização do Terraform, consulte o artigo Compatibilidade do Terraform com o GKE.

Adicione um conjunto de nós Arm a um cluster do GKE

Pode adicionar um novo conjunto de nós a um cluster padrão do GKE usando a CLI gcloud, a Google Cloud consola ou o Terraform.

Como prática recomendada para criar um cluster do GKE com qualquer tipo de nós, recomendamos que crie e use uma conta de serviço de gestão de identidade e acesso (IAM) com privilégios mínimos para os seus conjuntos de nós usarem em vez da conta de serviço predefinida do Compute Engine.

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

gcloud

Adicione um conjunto de nós Arm a um cluster existente:

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 o seguinte:

  • NODE_POOL_NAME: o nome do novo conjunto de nós do ARM para o cluster existente.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
  • CLUSTER_NAME: o nome do cluster onde quer adicionar um node pool Arm.
  • NODE_LOCATIONS: as zonas do seu conjunto de nós, como us-central1-a. Tem de escolher entre as zonas disponíveis para a série de máquinas Arm, caso contrário, a criação do conjunto de nós pode falhar.
  • ARM_MACHINE_TYPE: uma das formas de máquinas C4A ou formas de máquinas T2A disponíveis, como c4a-standard-8 ou t2a-standard-16.
  • NUM_NODES: o número de nós para o seu grupo de nós Arm.

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.

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

Consola

Para adicionar um conjunto de nós Arm a um cluster existente, siga estes passos:

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

    Aceda ao Google Kubernetes Engine

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

  3. Clique em Adicionar conjunto de nós.

  4. Configure o node pool.

  5. Escolha localizações de nós onde os nós Arm estão disponíveis.

    1. Na secção Detalhes do conjunto de nós, selecione a caixa Especificar localizações dos nós.
    2. Selecione as zonas onde os nós Arm estão disponíveis.
  6. Para selecionar um tipo de máquina Arm, na subsecção Nodes, em Configure node settings > Machine configuration > Machine family, selecione GENERAL-PURPOSE. No menu pendente Série, selecione C4A ou T2A. No menu pendente 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 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.

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

Terraform

Para adicionar um conjunto de nós que usa nós Arm a um cluster existente com o Terraform, consulte o seguinte exemplo:

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 seu cluster.

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

O que se segue?