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 zonais têm somente uma 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 os papéis comuns e os exemplos de tarefas mencionados no Google Cloud conteúdo, consulte Tarefas e funções de usuário comuns do GKE.

Antes de ler esta página, você precisa conhecer 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 Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. 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 de conta de serviço de nó padrão do Kubernetes Engine (roles/container.defaultNodeServiceAccount) no projeto. Por padrão, o GKE usa a conta de serviço padrão do Compute Engine, que é criada automaticamente no 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 Bem-vindo:

    Acessar a página de 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 participantes, 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 Google Cloud projeto:
    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 novo 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, algumas das quais são descritas nesta seção e outras que não podem ser alteradas após a criação do cluster. Verifique se você entende 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.

Você pode conferir uma visão geral das opções de configuração de cluster em Sobre as opções de configuração de cluster e uma lista completa de opções possíveis nos guias de referência gcloud container clusters create e Terraform google_container_cluster.

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

Se você estiver desenvolvendo aplicativos do GKE com o Cloud Code para VS Code, tente criar 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 (descontinuado). Por padrão, o cluster é inscrito no canal de lançamento regular.
  • CONTROL_PLANE_LOCATION: a zona do Compute Engine do plano de controle do seu 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 que você especifique uma conta de serviço do IAM com privilégios mínimos que os nós possam usar 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 sinalização 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 conta.

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

Exemplo

O comando a seguir cria um cluster de várias zonas chamado example-cluster, cujo plano de controle 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 Google Cloud console, execute as seguintes tarefas:

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

    Acessar a página "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. Escolha um canal de lançamento. Como opção, selecione Nenhum canal, mas essa opção de configuração está descontinuada e será removida. Para mais informações, consulte Clusters não inscritos em um canal de lançamento.

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

  3. Opcional: configure outras configuraçõ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 Google Cloud console 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. Se quiser, especifique uma conta de serviço do IAM personalizada para os 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 preferida.

    Recomendamos que você especifique uma conta de serviço do IAM com privilégios mínimos que os nós possam usar 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 Google Cloud console, 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 recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.

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