Como criar um cluster regional


Neste documento, mostramos como criar um cluster regional padrão para aumentar a disponibilidade do plano de controle e das cargas de trabalho do cluster durante upgrades de cluster, manutenção automatizada ou uma interrupção por zona.

Os clusters do Autopilot do GKE são sempre regionais.

Visão geral

Ao criar um cluster regional em vez de um cluster zonal, o plano de controle do cluster é replicado em várias zonas em uma determinada região. Para pools de nós em um cluster regional, é possível especificar manualmente as zonas em que os pools de nós serão executados. Também é possível usar a configuração padrão, que replica cada pool de nós em três zonas do plano de controle. Todas as zonas precisam estar na mesma região do plano de controle do cluster.

Os clusters regionais replicam recursos em várias zonas e consomem cotas adicionais.

Para saber mais sobre os diferentes tipos de disponibilidade de cluster, consulte Sobre opções de configuração de cluster.

Nas instruções das seções a seguir, mostramos como:

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 gcloud components update.

Criar um cluster regional com um pool de nós de zona única

Nas instruções a seguir, mostramos como criar um cluster regional com um pool de nós que opera em uma única zona dentro da região. O plano de controle do cluster é replicado em várias zonas na região especificada, mas os nós estão localizados na zona única e não são replicados em outras zonas.

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

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 regional com a gcloud CLI, use um dos comandos a seguir e substitua as seguintes variáveis:

  • CLUSTER_NAME: o nome do novo cluster regional;
  • COMPUTE_REGION: a região do cluster, como us-central1.
  • COMPUTE_ZONE: a zona do pool de nós, como us-central1-a. A zona precisa estar na mesma região que o plano de controle do 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.
  • VERSION: a versão que você quer especificar para o cluster.

Nos comandos a seguir, há a opção de usar a sinalização --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com para especificar uma conta de serviço do IAM diferente que os nós no primeiro pool de nós do cluster usam em vez da conta de serviço padrão do Compute Engine. Essa sinalização é opcional, mas recomendamos que você crie uma conta de serviço com privilégios mínimos para que os nós não tenham mais privilégios do que o necessário.

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 \
    --region COMPUTE_REGION \
    --node-locations COMPUTE_ZONE \
    --release-channel CHANNEL

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 \
    --region COMPUTE_REGION \
    --node-locations COMPUTE_ZONE \
    --cluster-version VERSION

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 \
    --region COMPUTE_REGION \
    --node-locations COMPUTE_ZONE \
    --release-channel None

Exemplo

O comando a seguir cria um cluster regional inscrito no canal de lançamento regular (padrão), com três nós (padrão) na zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --region us-west1 \
    --node-locations us-west1-c

Exemplo

O comando a seguir cria um cluster regional inscrito no canal de lançamento regular (padrão), com dois nós localizados na zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --region us-west1 \
    --node-locations us-west1-c \
    --num-nodes 2

Console

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

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

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

    1. Insira o Nome do cluster.
    2. Em Tipo de local, selecione Regional e selecione a região pretendida para o cluster.
    3. Se você quiser modificar os locais padrão dos nós (por exemplo, para execução em uma única zona), marque a caixa de seleção Especificar os locais padrão do nó e escolha as zonas em que você quer que os pools de nós sejam executados.

    4. Escolher um canal de lançamento Como opção, selecione Nenhum canal na lista suspensa. No entanto, recomendamos que você analise quando não inscrever seu cluster 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.

  4. Opcional (disponível no GKE Enterprise): se você quiser registrar o novo cluster em uma frota, acesse a seção Registro da frota e siga as as instruções do console do 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. Opcional: na lista suspensa Conta de serviço, selecione uma conta de serviço de gerenciamento de identidade e acesso (IAM) para os aplicativos usarem ao chamar as APIs do Google Cloud. Recomendamos que você use uma conta de serviço com privilégios mínimos em vez de usar a conta de serviço padrão, para que os nós não tenham mais privilégios do que o necessário.

  14. Clique em Criar.

Terraform

Para criar um cluster regional 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-regional-single-zone"
  location           = "us-west1"
  node_locations     = ["us-west1-c"]
  initial_node_count = 2

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

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.

Criar um cluster regional com um pool de nós de várias zonas

Nas instruções a seguir, mostramos como criar um cluster regional com um pool de nós de várias zonas, que é a configuração padrão. O plano de controle e os nós do cluster são replicados em várias zonas na região especificada.

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

Se você estiver desenvolvendo aplicativos do GKE com o Visual Studio Code, tente criar clusters com o Cloud Code.

gcloud

Para criar um cluster regional com a gcloud CLI, use um dos comandos a seguir e substitua as seguintes variáveis:

  • CLUSTER_NAME: o nome do novo cluster regional;
  • COMPUTE_REGION: a região do cluster, como us-central1.
  • CHANNEL: o tipo de canal de lançamento, que pode ser rapid, regular, stable ou None Por padrão, o cluster é registrado no canal de lançamento regular se as seguintes sinalizações não forem especificadas: --cluster-version, --release-channel, --no-enable-autoupgrade e --no-enable-autorepair.
  • VERSION: a versão que você quer especificar para o cluster.
  • Para regiões com mais de três zonas ou nos casos em que é preferível menos zonas, use a sinalização --node-locations opcional para modificar as zonas padrão em que os nós são replicados.

Nos comandos a seguir, há a opção de usar a sinalização --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com para especificar uma conta de serviço do IAM diferente que os nós no primeiro pool de nós do cluster usam em vez da conta de serviço padrão do Compute Engine. Essa sinalização é opcional, mas recomendamos que você crie e use uma conta de serviço com privilégios mínimos para que os nós não tenham mais privilégios do que o necessário.

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 \
    --region COMPUTE_REGION \
    --release-channel CHANNEL

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 \
    --region COMPUTE_REGION \
    --cluster-version VERSION

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 \
    --region COMPUTE_REGION \
    --release-channel None

Exemplo

O comando a seguir cria um cluster regional inscrito no canal de lançamento regular, com nove nós em us-west1 (três zonas com três nós cada, que é o padrão):

gcloud container clusters create my-regional-cluster --region us-west1

Exemplo

O comando a seguir cria um cluster regional inscrito no canal de lançamento regular, com seis nós (três zonas com dois nós cada, especificadas por --num-nodes):

gcloud container clusters create my-regional-cluster \
    --region us-west1 \
    --num-nodes 2

Exemplo

O comando a seguir cria um cluster regional inscrito no canal de lançamento regular, com seis nós em duas zonas (duas zonas especificadas por --node-locations com três nós cada):

gcloud container clusters create my-regional-cluster \
    --region us-central1 \
    --node-locations us-central1-b,us-central1-c

Console

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

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

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

    1. Insira o Nome do cluster.
    2. Em Tipo de local, selecione Regional e selecione a região pretendida para o cluster.
    3. Se você quiser modificar os locais padrão dos nós (por exemplo, para execução em uma única zona), marque a caixa de seleção Especificar os locais padrão do nó e escolha as zonas em que você quer que os pools de nós sejam executados.

    4. Escolher um canal de lançamento Como opção, selecione Nenhum canal na lista suspensa. No entanto, recomendamos que você analise quando não inscrever seu cluster 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.

  4. Opcional (disponível no GKE Enterprise): se você quiser registrar o novo cluster em uma frota, acesse a seção Registro da frota e siga as as instruções do console do 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. Opcional: na lista suspensa Conta de serviço, selecione uma conta de serviço de gerenciamento de identidade e acesso (IAM) para os aplicativos usarem ao chamar as APIs do Google Cloud. Recomendamos que você use uma conta de serviço com privilégios mínimos em vez de usar a conta de serviço padrão, para que os nós não tenham mais privilégios do que o necessário.

  14. Clique em Criar.

Terraform

Para criar um cluster regional 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-regional-multi-zone"
  location           = "us-central1"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

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.

A seguir