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:
- Crie um cluster regional com um pool de nós de zona única.
- Crie um cluster regional com um pool de nós de várias zonas.
Depois de criar um cluster regional, não será possível convertê-lo em um cluster zonal.
As informações mínimas que você precisa especificar ao criar um cluster regional são um nome, um projeto (geralmente o projeto atual) e uma região (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 neste guia, 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
.
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.
- Verifique se você tem a permissão correta para criar clusters. Você precisa ser, no mínimo, um Administrador de clusters do Kubernetes Engine.
- Se quiser registrar o novo cluster em uma frota, verifique se tem as APIs e permissões necessárias.
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 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 CLI gcloud, o console 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
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 gcloud CLI, use um dos comandos a seguir e substitua as seguintes variáveis:
CLUSTER_NAME
: o nome do novo cluster regional;CONTROL_PLANE_LOCATION
: a região do Compute Engine do plano de controle do cluster. Forneça uma região, comous-central1
.COMPUTE_ZONE
: a zona do pool de nós, comous-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 serrapid
,regular
,stable
ouNone
Por padrão, o cluster é inscrito no canal de lançamentoregular
, 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.
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 \
--location CONTROL_PLANE_LOCATION \
--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 \
--location CONTROL_PLANE_LOCATION \
--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 \
--location CONTROL_PLANE_LOCATION \
--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 \
--location 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 \
--location us-west1 \
--node-locations us-west1-c \
--num-nodes 2
Console
No console Google Cloud , acesse a página Criar um cluster do Kubernetes.
Na seção Princípios básicos do cluster, conclua o seguinte:
- Insira o Nome do cluster.
- Em Tipo de local, selecione Regional e selecione a região pretendida para o cluster.
- 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.
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.
Opcional: especifique uma versão do plano de controle na lista suspensa Versão.
Opcional: configure outras definições para o novo cluster.
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.
No painel de navegação, em Pools de nós, clique em default-pool.
Na seção Detalhes do pool de nós, preencha o seguinte:
- Insira um Nome para o pool de nós padrão.
- Opcional: escolha a Versão do nó.
- 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).
- 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.
No painel de navegação, em Pools de nós, clique em Nós.
Na lista suspensa Tipo de imagem, selecione a imagem de nó.
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.Na lista suspensa Tipo de disco de inicialização, selecione o tipo de disco.
Digite o Tamanho do disco de inicialização.
Opcional: no painel de navegação, em Pools de nós, 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.
Terraform
Para criar um cluster regional com um pool de nós de zona única usando o Terraform, consulte o exemplo a seguir:
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 CLI gcloud, o console 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
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 gcloud CLI, use um dos comandos a seguir e substitua as seguintes variáveis:
CLUSTER_NAME
: o nome do novo cluster regional;CONTROL_PLANE_LOCATION
: a região do Compute Engine do plano de controle do cluster. Forneça uma região, comous-central1
.CHANNEL
: o tipo de canal de lançamento, que pode serrapid
,regular
,stable
ouNone
Por padrão, o cluster é registrado no canal de lançamentoregular
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.
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 \
--location CONTROL_PLANE_LOCATION \
--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 \
--location CONTROL_PLANE_LOCATION \
--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 \
--location CONTROL_PLANE_LOCATION \
--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 --location 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 \
--location 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 \
--location us-central1 \
--node-locations us-central1-b,us-central1-c
Console
No console Google Cloud , acesse a página Criar um cluster do Kubernetes.
Na seção Princípios básicos do cluster, conclua o seguinte:
- Insira o Nome do cluster.
- Em Tipo de local, selecione Regional e selecione a região pretendida para o cluster.
- 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.
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.
Opcional: especifique uma versão do plano de controle na lista suspensa Versão.
Opcional: configure outras definições para o novo cluster.
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.
No painel de navegação, em Pools de nós, clique em default-pool.
Na seção Detalhes do pool de nós, preencha o seguinte:
- Insira um Nome para o pool de nós padrão.
- Opcional: escolha a Versão do nó.
- 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).
- 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.
No painel de navegação, em Pools de nós, clique em Nós.
Na lista suspensa Tipo de imagem, selecione a imagem de nó.
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.Na lista suspensa Tipo de disco de inicialização, selecione o tipo de disco.
Digite o Tamanho do disco de inicialização.
Opcional: no painel de navegação, em Pools de nós, 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.
Terraform
Para criar um cluster regional com um pool de nós de várias zonas usando o Terraform, consulte o exemplo a seguir:
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
- Saiba mais sobre os tipos de clusters que podem ser criados.
- Crie um cluster zonal.