Como criar um cluster zonal

Nesta página, mostramos como criar um cluster zonal padrão com os recursos padrão ativados no Google Kubernetes Engine (GKE). Os clusters de zona têm uma única instância de plano de controle em uma única zona. Dependendo dos requisitos de disponibilidade, é possível distribuir os nós para o cluster de zona em uma única ou em várias zonas.

Prática recomendada: use clusters regionais para executar cargas de trabalho de produção, porque eles oferecem maior disponibilidade do que os clusters zonais. Em um cluster regional, o plano de controle é replicado em várias zonas em uma região.

Esta página é destinada a operadores, arquitetos de nuvem e desenvolvedores que precisam criar e configurar clusters e implantar cargas de trabalho no GKE. Para saber mais sobre papéis comuns e tarefas de exemplo que mencionamos no conteúdo do Google Cloud, consulte Tarefas e funções de usuário comuns do GKE.

Antes de ler esta página, confira as opções de configuração de cluster.

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 zonal

As informações mínimas que você precisa especificar ao criar um cluster zonal são um nome, um projeto (geralmente o projeto atual) e uma zona (geralmente o local padrão para ferramentas de linha de comando), usando as configurações padrão para todos os outros valores. No entanto, há mais configurações possíveis, apenas algumas delas são descritas nesta seção, e algumas 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 e do Terraform google_container_cluster.

É possível criar um cluster zonal usando a CLI gcloud, o console doGoogle Cloud ou o Terraform.

Se você estiver desenvolvendo aplicativos do GKE com o Cloud Code para VS Code, crie clusters com o Cloud Code.

gcloud

Para criar um cluster zonal com a CLI gcloud, use um dos comandos a seguir.

Substitua:

  • CLUSTER_NAME: o nome do novo cluster;
  • CHANNEL: o tipo de canal de lançamento, que pode ser rapid, regular, stable ou None Por padrão, o cluster é inscrito no canal de lançamento regular, a menos que pelo menos uma das sinalizações a seguir seja especificada: --cluster-version, --release-channel, --no-enable-autoupgrade, e --no-enable-autorepair.
  • CONTROL_PLANE_LOCATION: a zona do Compute Engine do plano de controle do cluster.
  • VERSION: a versão que você quer especificar para o cluster.
  • COMPUTE_ZONE,COMPUTE_ZONE1,[...]: as zonas em que os nós são criados. Especifique quantas zonas forem necessárias para o cluster. Todas as zonas precisam estar na mesma região que o plano de controle do cluster, especificado pela sinalização --location. Para clusters zonais, --node-locations precisa conter a zona principal do cluster.

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.

Como usar um canal de lançamento específico:

Para criar um novo cluster usando um canal de lançamento específico, execute o comando a seguir:

gcloud container clusters create CLUSTER_NAME \
    --release-channel CHANNEL \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

Como usar uma versão específica:

Para criar um novo cluster usando uma versão de cluster específica, execute o comando a seguir:

gcloud container clusters create CLUSTER_NAME \
    --cluster-version VERSION \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

Como usar a versão padrão para clusters não inscritos em um canal de lançamento:

Para criar um novo cluster usando a versão padrão para clusters não inscritos em um canal de lançamento, não é necessário especificar uma versão do cluster, mas você precisa definir o canal de lançamento como None:

gcloud container clusters create CLUSTER_NAME \
    --release-channel None \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE,COMPUTE_ZONE1

Exemplo

O comando a seguir cria um cluster multizonal chamado example-cluster, em que o plano de controle do cluster está localizado na zona us-central-a e há três locais de nó. O cluster está inscrito no canal de lançamento regular.

Quando a sinalização --num-nodes é omitida, o número padrão de nós por zona criado pelo cluster é três. Como três zonas foram especificadas, esse comando cria um cluster de nove nós com três nós em us-central1-a, us-central1-b e us-central1-c.

gcloud container clusters create example-cluster \
    --location us-central1-a \
    --node-locations us-central1-a,us-central1-b,us-central1-c

Console

Para criar um cluster zonal com o console Google Cloud , execute as seguintes tarefas:

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

    Acessar "Criar um cluster do Kubernetes"

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

    1. Insira o Nome do cluster.
    2. Em Tipo de local, selecione Por zona e selecione a zona do cluster.
    3. Se você estiver criando um cluster de várias zonas, marque a caixa de seleção Especificar os locais padrão do nó e escolha as outras zonas em que quer executar os pools de nós.

    4. Escolher um canal de lançamento Como opção, selecione Nenhum canal na lista suspensa. No entanto, recomendamos que você analise a comparação entre clusters inscritos e não inscritos em um canal de lançamento antes de escolher essa opção. O GKE faz upgrade automaticamente dos clusters que não estão em um canal de lançamento com versões do Canal Stable.

    5. Opcional: especifique uma versão do plano de controle na lista suspensa Versão.

  3. Opcional: configure outras definições para o novo cluster.

  4. 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. No painel de navegação, em Pools de nós, clique em default-pool.

  6. Na seção Detalhes do pool de nós, preencha o seguinte:

    1. Insira um Nome para o pool de nós padrão.
    2. Opcional: escolha a Versão do nó.
    3. Digite o Número de nós a serem criados no cluster. É necessário ter uma cota de recursos disponível para os nós e os recursos deles (como rotas de firewall).
    4. Opcional: é possível desativar os upgrades automáticos de nós. No entanto, recomendamos que você leia as considerações antes de desativar os upgrades automáticos de nós antes de escolher essa opção.
  7. No painel de navegação, em Pools de nós, clique em Nós.

  8. Na lista suspensa Tipo de imagem, selecione a imagem de nó.

  9. Escolha a Configuração da máquina padrão para usar nas instâncias. O faturamento varia de acordo com cada tipo de máquina. O tipo de máquina padrão é e2-medium. Para informações sobre preços de tipos de máquina, consulte a tabela de preços.

  10. Na lista suspensa Tipo de disco de inicialização, selecione o tipo de disco.

  11. Digite o Tamanho do disco de inicialização.

  12. Opcional: no painel de navegação, em Pools de nós, clique em Segurança.

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

  14. Clique em Criar.

Terraform

Para criar um cluster zonal com um pool de nós de zona única usando o Terraform, consulte o exemplo a seguir:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-single-zone"
  location           = "us-central1-a"
  initial_node_count = 1
}

Para criar um cluster zonal com um pool de nós de várias zonas usando o Terraform, consulte o exemplo a seguir:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-multi-zone"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2
}

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

Interagir com um cluster usando a kubectl

Depois de criar um cluster, é preciso configurar a kubectl antes de interagir com o cluster a partir da linha de comando.

Modelos de cluster

Anteriormente, o GKE era compatível com modelos para clusters. Esses modelos foram removidos do console do Google Cloud , mas ainda podem ser acessados nos seguintes links:

A seguir

Faça um teste

Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do GKE em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.

Faça uma avaliação sem custos do GKE