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.
- Revise os requisitos e limitações dos nós C4A e T2A.
- Verifique se você tem as permissões corretas para criar clusters. Você precisa ser, no mínimo, um Administrador de clusters do Kubernetes Engine.
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
- Acesse a página Boas-vindas:
- No campo Número do projeto, clique em Copiar para a área de transferência.
- Acesse a página do IAM:
- Clique em CONCEDER ACESSO.
- No campo Novos principais, especifique o seguinte valor:
SubstituaPROJECT_NUMBER-compute@developer.gserviceaccount.com
PROJECT_NUMBER
pelo número do projeto que você copiou. - No menu Selecionar um papel, escolha o papel Conta de serviço de nó padrão do Kubernetes Engine.
- Clique em Salvar.
gcloud
- 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
- 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, comous-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, comoc4a-standard-8
out2a-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
No console Google Cloud , acesse a página Criar um cluster do Kubernetes.
Configure seu cluster. Para mais informações, consulte as instruções para Criar um cluster zonal ou Como criar um cluster regional.
Escolha um local em que os nós do Arm estejam disponíveis.
- Na seção Princípios básicos do cluster, em Tipo de local, escolha "Zonal" ou "Regional":
- No menu suspenso, escolha uma zona ou região onde os nós do Arm estão disponíveis.
- 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.
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.
- Opcionalmente, especifique uma conta de serviço do IAM personalizada para seus nós:
- Na página Configurações avançadas, expanda a seção Segurança.
- 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.
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:
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, comous-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, comoc4a-standard-8
out2a-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:
Acesse a página do Google Kubernetes Engine no Google Cloud console.
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique em add_boxAdicionar pool de nós.
Configure o pool de nós.
Escolha os locais dos nós em que os nós do Arm estão disponíveis.
- Na seção Detalhes do pool de nós, marque a caixa Especificar locais do nó.
- Selecione as zonas em que os nós do Arm estão disponíveis.
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.
No menu de navegação, clique em Segurança.
- Opcionalmente, especifique uma conta de serviço do IAM personalizada para seus nós:
- Na página Configurações avançadas, expanda a seção Segurança.
- 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.
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:
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
- Criar imagens de multiarquitetura para cargas de trabalho do Arm
- Preparar uma carga de trabalho do Arm para implantação
- Migrar um aplicativo x86 no GKE para várias arquiteturas com Arm