Criar um cluster regional

Este documento mostra como criar um cluster regional padrão para aumentar a disponibilidade do plano de controlo e das cargas de trabalho do cluster durante as atualizações do cluster, a manutenção automatizada ou uma interrupção zonal.

Os clusters do GKE Autopilot são sempre regionais.

Vista geral

Quando cria um cluster regional em vez de um cluster zonal, o plano de controlo do cluster é replicado em várias zonas numa determinada região. Para pools de nós num cluster regional, pode especificar manualmente as zonas nas quais executar os pools de nós ou pode usar a configuração predefinida, que replica cada pool de nós em três zonas da região do plano de controlo. Todas as zonas têm de estar na mesma região que o plano de controlo do cluster.

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

Para saber mais acerca dos diferentes tipos de disponibilidade de clusters, consulte o artigo Acerca das escolhas de configuração de clusters.

As instruções nas secções seguintes mostram como:

Depois de criar um cluster regional, não pode convertê-lo num cluster zonal.

As informações mínimas que tem de especificar quando cria um novo cluster regional são um nome, um projeto (normalmente, o projeto atual) e uma região (normalmente, a localização predefinida para ferramentas de linha de comandos), usando as predefinições para todos os outros valores. No entanto, existem mais definições de configuração possíveis, das quais apenas algumas são descritas neste guia e algumas não podem ser alteradas após a criação do cluster. Certifique-se de que compreende que definições não podem ser alteradas após a criação do cluster e que escolhe a definição certa quando cria um cluster, se não quiser ter de o criar novamente.

Pode ver uma vista geral das opções de configuração de clusters em Acerca das opções de configuração de clusters e uma lista completa das opções possíveis nos guias de referência do gcloud container clusters create e do Terraform google_container_cluster.

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 regional com um node pool de uma única zona

As instruções seguintes mostram como criar um cluster regional com um conjunto de nós que opera numa única zona na região. O plano de controlo 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 para outras zonas.

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

Se estiver a desenvolver aplicações GKE com o Cloud Code para VS Code, experimente criar clusters com o Cloud Code.

gcloud

Antes de executar os comandos da CLI gcloud para criar o cluster, defina o projeto correto executando o seguinte:

gcloud config set project PROJECT_ID
# gcloud config set billing/quota_project PROJECT_ID

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

  • CLUSTER_NAME: o nome do seu novo cluster regional.
  • CONTROL_PLANE_LOCATION: a região do Compute Engine do plano de controlo do seu cluster. Indique uma região, como us-central1.
  • COMPUTE_ZONE: a zona para o seu node pool, como us-central1-a. A zona tem de estar na mesma região que o plano de controlo do cluster.
  • CHANNEL: o tipo de canal de lançamento, que pode ser um dos seguintes: rapid, regular, stable ou None. Por predefinição, o cluster está inscrito no canal de lançamento regular, a menos que seja especificada, pelo menos, uma das seguintes flags: --cluster-version, --release-channel, --no-enable-autoupgrade e --no-enable-autorepair.
  • VERSION: a versão que quer especificar para o seu cluster.

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.

Usando um canal de lançamento específico:

Para criar um novo cluster com um canal de lançamento específico, execute o seguinte comando:

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

Usar uma versão específica:

Para criar um novo cluster com uma versão específica do cluster, execute o seguinte comando:

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

Usar a versão predefinida para clusters não inscritos num canal de lançamento:

Para criar um novo cluster com a versão predefinida para clusters não inscritos num canal de lançamento, não precisa de especificar uma versão do cluster, mas tem de definir o canal de lançamento como None:

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

Exemplo

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

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

Exemplo

O comando seguinte cria um cluster regional inscrito no regularcanal de lançamento (predefinição), com dois nós localizados na zona us-west1-c:

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

Consola

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

    Aceda a Crie um cluster do Kubernetes

  2. Na secção Noções básicas do cluster, conclua o seguinte:

    1. Introduza o Nome do cluster.
    2. Para o Tipo de localização, selecione Regional e, de seguida, selecione a região para o seu cluster.
    3. Se quiser substituir as localizações de nós predefinidas (por exemplo, para executar numa única zona), selecione a caixa de verificação Especificar localizações de nós predefinidas e, de seguida, escolha as zonas nas quais quer que os conjuntos de nós sejam executados.

    4. Escolha um canal de lançamento. Opcionalmente, pode selecionar Nenhum canal na lista pendente. No entanto, recomendamos que reveja a comparação entre clusters inscritos e não inscritos num canal de lançamento antes de escolher esta opção. O GKE atualiza automaticamente os clusters que não estão num canal de lançamento com versões do canal estável.

    5. Opcional: especifique uma versão do plano de controlo na lista pendente Versão.

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

  4. Opcional: se quiser registar o novo cluster numa frota, aceda à secção Registo de frotas e siga as Google Cloud instruções da consola para criar e registar um novo cluster para concluir o registo do cluster.

  5. No painel de navegação, em Node Pools, clique em default-pool.

  6. Na secção Detalhes do conjunto de nós, conclua o seguinte:

    1. Introduza um Nome para o conjunto de nós predefinido.
    2. Opcional: escolha a versão do Node.
    3. Introduza o Number of nodes (Número de nós) a criar no cluster. Tem de ter quota de recursos disponível para os nós e os respetivos recursos (como trajetos de firewall).
    4. Opcional: pode optar por desativar as atualizações automáticas de nós. No entanto, recomendamos que reveja as considerações antes de desativar as atualizações automáticas de nós antes de escolher esta opção.
  7. No painel de navegação, em Node Pools, clique em Nodes.

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

  9. Escolha a configuração da máquina predefinida a usar para as instâncias. Cada tipo de máquina é faturado de forma diferente. O tipo de máquina predefinido é e2-medium. Para ver informações sobre os preços dos tipos de máquinas, consulte a folha de preços dos tipos de máquinas.

  10. Na lista pendente Tipo de disco de arranque, selecione o tipo de disco.

  11. Introduza o tamanho do disco de arranque.

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

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

  14. Clique em Criar.

Terraform

Para criar um cluster regional com um pool de nós de zona única através do Terraform, consulte o seguinte exemplo:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-single-zone"
  location           = "us-west1"
  node_locations     = ["us-west1-c"]
  initial_node_count = 2
}

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

Interaja com um cluster através do kubectl

Depois de criar um cluster, tem de o configurar kubectl antes de poder interagir com o cluster a partir da linha de comandos.

Crie um cluster regional com um node pool de várias zonas

As instruções seguintes mostram como criar um cluster regional com um conjunto de nós de várias zonas, que é a configuração predefinida. O plano de controlo do cluster e os nós são replicados em várias zonas na região especificada.

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

Se estiver a desenvolver aplicações GKE com o Visual Studio Code, experimente criar clusters com o Cloud Code.

gcloud

Antes de executar os comandos da CLI gcloud para criar o cluster, defina o projeto correto executando o seguinte:

gcloud config set project PROJECT_ID
# The project set above is used for quota and billing by default.
# To use a different project for quota and billing, run the following command:
# gcloud config set billing/quota_project PROJECT_ID

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

  • CLUSTER_NAME: o nome do seu novo cluster regional.
  • CONTROL_PLANE_LOCATION: a região do Compute Engine do plano de controlo do seu cluster. Indique uma região, como us-central1.
  • CHANNEL: o tipo de canal de lançamento, que pode ser um dos seguintes: rapid, regular, stable ou None. Por predefinição, o cluster está inscrito no canal de lançamento regular se as seguintes flags não forem especificadas: --cluster-version, --release-channel, --no-enable-autoupgrade e --no-enable-autorepair.
  • VERSION: a versão que quer especificar para o seu cluster.
  • Para regiões com mais de três zonas ou nos casos em que se prefere um número inferior de zonas, pode usar a flag opcional --node-locations para substituir as zonas predefinidas nas quais os nós são replicados.

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.

Usando um canal de lançamento específico:

Para criar um novo cluster com um canal de lançamento específico, execute o seguinte comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel CHANNEL

Usar uma versão específica:

Para criar um novo cluster com uma versão específica do cluster, execute o seguinte comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --cluster-version VERSION

Usar a versão predefinida para clusters não inscritos num canal de lançamento:

Para criar um novo cluster com a versão predefinida para clusters não inscritos num canal de lançamento, não precisa de especificar uma versão do cluster, mas tem de definir o canal de lançamento como None:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel None

Exemplo

O comando seguinte cria um cluster regional inscrito no regularrelease channelus-west1 com nove nós em us-west1 (três zonas com três nós cada, que é a predefinição):

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

Exemplo

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

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

Exemplo

O comando seguinte 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 \
    --location us-central1 \
    --node-locations us-central1-b,us-central1-c

Consola

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

    Aceda a Crie um cluster do Kubernetes

  2. Na secção Noções básicas do cluster, conclua o seguinte:

    1. Introduza o Nome do cluster.
    2. Para o Tipo de localização, selecione Regional e, de seguida, selecione a região para o seu cluster.
    3. Se quiser substituir as localizações de nós predefinidas (por exemplo, para executar numa única zona), selecione a caixa de verificação Especificar localizações de nós predefinidas e, de seguida, escolha as zonas nas quais quer que os conjuntos de nós sejam executados.

    4. Escolha um canal de lançamento. Opcionalmente, pode selecionar Nenhum canal na lista pendente. No entanto, recomendamos que reveja a comparação entre clusters inscritos e não inscritos num canal de lançamento antes de escolher esta opção. O GKE atualiza automaticamente os clusters que não estão num canal de lançamento com versões do canal estável.

    5. Opcional: especifique uma versão do plano de controlo na lista pendente Versão.

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

  4. Opcional: se quiser registar o novo cluster numa frota, aceda à secção Registo de frotas e siga as Google Cloud instruções da consola para criar e registar um novo cluster para concluir o registo do cluster.

  5. No painel de navegação, em Node Pools, clique em default-pool.

  6. Na secção Detalhes do conjunto de nós, conclua o seguinte:

    1. Introduza um Nome para o conjunto de nós predefinido.
    2. Opcional: escolha a versão do Node.
    3. Introduza o Number of nodes (Número de nós) a criar no cluster. Tem de ter quota de recursos disponível para os nós e os respetivos recursos (como trajetos de firewall).
    4. Opcional: pode optar por desativar as atualizações automáticas de nós. No entanto, recomendamos que reveja as considerações antes de desativar as atualizações automáticas de nós antes de escolher esta opção.
  7. No painel de navegação, em Node Pools, clique em Nodes.

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

  9. Escolha a configuração da máquina predefinida a usar para as instâncias. Cada tipo de máquina é faturado de forma diferente. O tipo de máquina predefinido é e2-medium. Para ver informações sobre os preços dos tipos de máquinas, consulte a folha de preços dos tipos de máquinas.

  10. Na lista pendente Tipo de disco de arranque, selecione o tipo de disco.

  11. Introduza o tamanho do disco de arranque.

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

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

  14. Clique em Criar.

Terraform

Para criar um cluster regional com um node pool de várias zonas através do Terraform, consulte o seguinte exemplo:

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
}

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

Interaja com um cluster através do kubectl

Depois de criar um cluster, tem de o configurar kubectl antes de poder interagir com o cluster a partir da linha de comandos.

O que se segue?