Como criar um cluster Alfa

Nesta página, mostramos como criar um cluster Alfa do Google Kubernetes Engine (GKE), que é um cluster do GKE com APIs e recursos Alfa do Kubernetes ativados. Com um cluster Alfa, todos os portões de recursos Alfa disponíveis na versão do Kubernetes são ativados por padrão. Os feature gates Beta que o Kubernetes ativa por padrão também são ativados. É possível modificar os padrões do GKE para ativar ou desativar os portões de recursos. Para mais informações sobre quais feature gates estão disponíveis com versões específicas e quais recursos Beta estão ativados por padrão, consulte Feature gates para recursos Alfa ou Beta na documentação do Kubernetes.

Para mais informações sobre como os clusters do GKE funcionam e como escolher qual tipo de cluster do GKE criar, consulte Arquitetura de cluster do GKE e Sobre 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 cluster alfa

É possível criar um cluster Alfa usando o console Google Cloud ou a CLI gcloud. Para criar um cluster que especifica os portões de recursos para ativar ou desativar de maneira diferente dos valores padrão, use a CLI gcloud.

Console

  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. Na lista suspensa Canal de lançamento, selecione Nenhum canal.

    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.
    5. Desmarque as opções Ativar upgrade automático e Ativar reparo automático.
  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. No painel de navegação, em Cluster, clique em Recursos.

  15. Clique em Ativar recursos alfa do Kubernetes neste cluster.

  16. Leia e confirme o aviso selecionando Entendo as consequências.

  17. Clique em Criar.

gcloud

Execute este comando:

gcloud container clusters create CLUSTER_NAME \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

Substitua:

  • CLUSTER_NAME: o nome escolhido para o cluster.
  • CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do cluster. Forneça uma região para clusters regionais ou uma zona para clusters zonais.
  • --cluster-version VERSION: (opcional) especifica a versão do GKE que será executada no cluster. Se omitido, o cluster vai executar a versão de patch padrão para criação de cluster para Nenhum canal, conforme mostrado na tabela Versões atuais.
  • FEATURE_GATES_LIST: a lista de flags de recursos a serem ativadas ou desativadas de maneira diferente dos valores padrão. Cada string representa a ativação ou desativação de um recurso. Por exemplo, featureX=true, featureY=false. Quando você omite essa flag, o GKE cria o cluster usando os valores padrão do GKE. Isso significa que todos os gates de recursos Alfa disponíveis com a versão do Kubernetes são ativados. Os feature gates Beta ativados por padrão pelo Kubernetes também são ativados. Para mais informações sobre quais portões de recursos estão disponíveis com versões específicas e quais recursos Beta estão ativados por padrão, consulte Portões de recursos para recursos Alfa ou Beta na documentação do Kubernetes. Ao incluir essa flag, você modifica quais portões de recursos são ativados em relação a como eles são definidos por padrão pelo GKE. Para mais informações, consulte Feature gates e clusters alfa.

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.

Será necessário confirmar o recebimento de um aviso de que o cluster Alfa não foi atualizado e será excluído após 30 dias:

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

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.

Verificar o estado do feature gate para um cluster Alfa

Com os clusters Alfa, é possível ativar ou desativar seletivamente os portões de recursos. Para mais informações, consulte Feature gates e clusters alfa.

Para verificar o estado do feature gate do cluster, consulte Verificar o estado do feature gate.

Verificar quando um cluster Alfa expira

Para verificar quando os clusters Alfa expiram, execute o seguinte comando:

gcloud container clusters list

Resolver problemas ao criar um cluster Alfa com flags de recursos

Se você tentar criar um cluster com um recurso de porta inválido ou um recurso de porta sem suporte para a versão do Kubernetes do cluster, o cluster poderá ser criado em um estado de erro.

Você pode encontrar uma mensagem semelhante a esta no Cloud Logging:

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

Se você encontrar esse erro, exclua o cluster com falha. Verifique a ortografia e a compatibilidade dos portões de recursos com a versão do Kubernetes especificada. Em seguida, tente criar o cluster de novo.

A seguir