Criar um cluster de usuários no console do Google Cloud

Nesta página, descrevemos como criar um cluster do Anthos no cluster de usuário do VMware (GKE On-prem) usando o Console do Google Cloud. Quando você cria um cluster de usuário, o console ativa automaticamente a API GKE On-Prem no projeto do Google Cloud selecionado para a criação do cluster. A API GKE On-Prem é executada na infraestrutura do Google Cloud, e o console usa essa API para criar o cluster no data center do vSphere. Para gerenciar seus clusters, a API GKE On-Prem precisa armazenar metadados sobre o estado do cluster na região do Google Cloud especificada ao criar o cluster. Esses metadados permitem que a API GKE On-Prem gerencie o ciclo de vida do cluster de usuário e não inclua dados específicos da carga de trabalho.

Se preferir, é possível criar um cluster de usuário criando um arquivo de configuração de cluster de usuário e usando gkectl, conforme descrito em Como criar um cluster de usuário.

Se quiser usar o console do Google Cloud para gerenciar o ciclo de vida dos clusters criados usando gkectl, consulte Configurar um cluster de usuário a ser gerenciado pela API Anthos On-Prem.

Antes de começar

Nesta seção, descrevemos os requisitos para criar um cluster de usuário no console do Google Cloud.

Conceder permissões do IAM

A criação de clusters de usuário no console do Google Cloud é controlada pelo Identity and Access Management (IAM). Se você não for proprietário de um projeto, precisa ter, mínimo, os papéis a seguir, além dos necessários para ver clusters e recursos de contêiner no console do Google Cloud:

  • roles/gkeonprem.admin Para ver detalhes sobre as permissões incluídas nesse papel, consulte Papéis do GKE On-Prem na documentação do IAM.

Após a criação do cluster, se você não for um proprietário do projeto e quiser usar o gateway do Connect para conectar-se ao cluster de usuário pela linha de comando, a os seguintes papéis são obrigatórios:

  • roles/gkehub.gatewayAdmin: este papel permite acessar a API Connect Gateway. Se você precisar apenas de acesso somente leitura ao cluster, roles/gkehub.gatewayReader será suficiente.

  • roles/gkehub.viewer: esse papel permite recuperar credenciais de cluster.

Para ver detalhes sobre as permissões incluídas nesses papéis, consulte Papéis do GKE Hub na documentação do IAM.

Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Registrar o cluster de administrador

É necessário ter um cluster de administrador e registrá-lo em uma frota antes de criar clusters de usuário no console do Google Cloud.

Ativar os registros de auditoria de atividade do administrador no cluster de administrador

A geração de registros de atividade do administrador para os registros de auditoria do Cloud precisa estar ativada no cluster de administrador.

Ativar a geração de registros e o monitoramento no nível do sistema para o cluster de administrador

O Cloud Logging e o Cloud Monitoring precisam estar ativados no cluster de administrador.

Versões compatíveis do cluster de administrador

Seu cluster de administrador precisa estar na versão 1.10.0+ ou 1.11.1+ ou posterior para criar um cluster de usuário 1.11. A versão 1.11.0 não é compatível. Se você quiser fazer upgrade do cluster de administrador, consulte Como fazer upgrade de clusters do Anthos no VMware.

APIs do Google obrigatórias

Verifique se todas as APIs do Google necessárias estão ativadas no projeto host da frota.

Depois da criação do cluster, se você quiser usar o gateway do Connect para se conectar ao cluster de usuário pela linha de comando, ative a API Connect Gateway:

gcloud services enable --project=FLEET_HOST_PROJECT_ID  \
    connectgateway.googleapis.com

Acesso à linha de comando

Após a criação do cluster, se você quiser usar o gateway do Connect para se conectar ao cluster de usuário pela linha de comando, faça o seguinte:

Verifique se você tem as seguintes ferramentas de linha de comando instaladas:

  • A versão mais recente da CLI gcloud.
  • kubectl para executar comandos em clusters do Kubernetes. Se precisar instalar kubectl, siga estas instruções

Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.

Criar um cluster de usuário

A maioria dos campos no console do Google Cloud corresponde aos campos no arquivo de configuração do cluster de usuário.

  1. No console do Google Cloud, acesse a página "Clusters do Anthos".

    Acesse a página de clusters do Anthos

  2. Selecione o projeto do Google Cloud em que você quer criar o cluster. O projeto selecionado também é usado como projeto host da frota. Precisa ser o mesmo projeto em que o cluster de administrador está registrado. Depois que o cluster de usuário é criado, ele é registrado automaticamente na frota do projeto selecionado.

  3. Clique em Criar cluster.

  4. Na caixa de diálogo, clique em No local.

  5. Ao lado de VMware vSphere, clique em Configurar.

As seções a seguir orientam você na configuração do cluster de usuários.

Prerequisites

Nesta seção do console do Google Cloud, você encontra uma visão geral de tudo que precisa ser feito antes de criar um cluster de usuário. Depois de confirmar que você tem todas as informações necessárias para criar um cluster de usuário, clique em Continuar.

Noções básicas sobre clusters

Insira informações básicas sobre o cluster.

  1. Insira um nome para o cluster de usuário.
  2. Em Cluster de administração, selecione o cluster de administrador na lista. Se você não tiver especificado um nome para o cluster de administrador quando o criou, o nome será gerado no formato gke-admin-[HASH]. Se você não reconhece o nome do cluster de administrador, execute o seguinte comando na estação de trabalho do administrador:

    KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG
    kubectl get OnPremAdminCluster -n kube-system -o=jsonpath='{.items[0].metadata.name}'
    

    Se o cluster de administrador que você quer usar não for exibido, consulte a seção de solução de problemas O cluster de administrador não é exibido naNoções básicas sobre clusters Lista suspensa de dados.

  3. No campo Local da API GCP, selecione a região do Google Cloud na lista. Além de controlar a região em que a API GKE On-Prem é executada, essa configuração controla a região em que o seguinte está armazenado:

    • Os metadados do cluster de usuário de que a API Anthos On-Prem precisa para gerenciar o ciclo de vida do cluster
    • Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
    • O registro de auditoria do administrador criado pelos registros de auditoria do Cloud
  4. Os clusters do Anthos na versão VMware para seu cluster de usuário.

  5. Como criador do cluster, você recebe privilégios de administrador. Se quiser, insira o endereço de e-mail de outro usuário que administrará o cluster no campo Usuário administrador do cluster na seção Autorização.

    Quando o cluster é criado, a API GKE On-Prem aplica as políticas de controle de acesso baseado em papel (RBAC) do Kubernetes ao cluster para conceder a você e a outros usuários administradores o papel clusterrole/cluster-admin do Kubernetes, que fornece acesso total a todos os recursos do cluster em todos os namespaces.

  6. Clique em Continuar para acessar a seção Rede.

Rede

Nesta seção, você especificará os endereços IP para os nós, pods e serviços do cluster. Um cluster de usuário precisa ter um endereço IP para cada nó e um endereço IP extra a ser usado para um nó temporário durante o upgrade do cluster de usuário. Para mais informações, consulte De quantos endereços IP um cluster de usuário precisa?.

  1. Na seção IPs de nós, selecione o Modo IP do cluster de usuário. Selecione uma destas opções:

    • DHCP: escolha DHCP se quiser que os nós do cluster recebam o endereço IP de um servidor DHCP.

    • Estático: escolha Estático se quiser fornecer endereços IP estáticos para os nós do cluster ou se quiser configurar o balanceamento de carga manual.

  2. Se você tiver selecionado DHCP, pule para a próxima etapa para especificar os CIDRs de serviço e pod. Para o modo de IP estático, forneça as informações a seguir:

    1. Digite o endereço IP do gateway para o cluster de usuário.
    2. Insira a máscara de sub-rede para os nós do cluster de usuário.

    3. Na seção Endereços IP, insira os endereços IP e, opcionalmente, os nomes do host dos nós no cluster de usuários. É possível inserir um endereço IP v4 individual (como 192.0.2.1) ou um bloco CIDR de endereços IPv4 (como 192.0.2.0/24).

      • Se você inserir um bloco CIDR, não insira um nome do host.
      • Se você digitar um endereço IP individual, poderá inserir um nome do host. Se você não inserir um nome do host, os clusters do Anthos no VMware usarão o nome da VM do vSphere como o nome do host.
    4. Clique em + Adicionar endereço IP conforme necessário para inserir mais endereços IP.

  3. Na seção CIDRs de serviços e pods, o console fornece os seguintes intervalos de endereços para os serviços e pods do Kubernetes:

    • CIDR de serviço: 10.96.0.0/20
    • CIDR de pods: 192.168.0.0/16

    Se você preferir inserir seus próprios intervalos de endereços, consulte Endereços IP para pods e serviços para ver práticas recomendadas.

  4. Se você selecionou Modo de IP estático, especifique as seguintes informações na seção Configuração do host:

    1. Digite os endereços IP dos servidores DNS.
    2. Digite os endereços IP dos servidores NTP.
    3. Também é possível digitar domínios de pesquisa DNS.
  5. Clique em Continuar para acessar a seção Balanceador de carga.

Balanceador de carga

Escolha o balanceador de carga a ser configurado para o cluster. Consulte a visão geral do balanceador de carga para mais informações.

Selecione o Tipo de balanceador de carga na lista.

Empacotado com MetalLB

Configurar balanceamento de carga em pacote com o MetalLB. Essa opção requer configuração mínima. Executado diretamente nos nós do cluster e não requer VMs extras Para mais informações sobre os benefícios do uso do MetalLB e como ele se compara às outras opções de balanceamento de carga, consulte Balanceamento de carga em pacote com MetalLB.

  1. Na seção Pools de endereços, configure pelo menos um pool de endereços da seguinte maneira:

    1. Insira um Nome para o pool de nós.

    2. Insira um intervalo de endereços IP que contenha o VIP de entrada em qualquer notação CIDR (por exemplo, 192.0.2.0/26) ou a notação de intervalo (por exemplo, 192.0.2.64-192.0.2.72). Para especificar um único endereço IP em um pool, use /32 na notação CIDR (por exemplo, 192.0.2.1/32).

    3. Se os endereços IP dos Serviços do tipo LoadBalancer não estiverem no mesmo intervalo de endereços IP que o VIP de entrada, clique em + Adicionar intervalo de endereços IP e digite outro endereço. um intervalo

      Os endereços IP de cada pool não podem se sobrepor e precisam estar na mesma sub-rede que os nós do cluster.

    4. Em Atribuição de endereços IP, selecione uma das seguintes opções:

      • Automático: escolha essa opção se quiser que o controlador do MetalLB atribua automaticamente endereços IP do pool de endereços aos serviços do tipo LoadBalancer.
      • Manual: escolha essa opção se você pretende usar endereços do pool para especificar manualmente os endereços para serviços do tipo LoadBalancer.
    5. Clique em Evitar endereços IP com bugs se quiser que o controlador MetalLB não use endereços do pool que terminam em .0 ou .255. Isso evita o problema de dispositivos com bug de consumo que descartam o tráfego enviado para esses endereços IP especiais.

    6. Quando terminar, clique em Concluído.

  2. Se necessário, clique em Adicionar pool de endereços.

  3. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado ao servidor da API Kubernetes do cluster de usuário. O servidor da API Kubernetes para o cluster de usuário é executado em um nó no cluster de administrador. Esse endereço IP precisa estar no mesmo domínio L2 que os nós do cluster de administrador. Não adicione esse endereço na seção Pools de endereços.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada. É necessário adicionar isso a um pool de endereços na seção Pools de endereços.

  4. Clique em Continuar.

Balanceador de carga F5 Big-IP

Só é possível usar o F5 para o cluster de usuário se o cluster de administrador estiver usando o F5. Instale e configure o ADC F5 BIG-IP antes de integrá-lo aos clusters do Anthos no VMware. Consulte o Guia de instalação do ADC F5 BIG-IP para mais informações.

  1. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado para o servidor da API Kubernetes.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada.

  2. No campo Endereço, digite o endereço do balanceador de carga F5 BIG-IP.

  3. No campo Partição, insira o nome de uma partição BIG-IP que você criou para o cluster de usuário.

  4. No campo Nome do pool de sNAT, insira o nome do pool de SNAT, se aplicável.

  5. Clique em Continuar.

Balanceador de carga manual

Configure o balanceamento de carga manual. Em clusters do Anthos no VMware, o servidor da API Kubernetes, o proxy de entrada e o serviço de complemento para agregação de registros são expostos por um serviço do Kubernetes do tipo LoadBalancer. Escolha seus próprios valores de nodePort no intervalo 30000 - 32767 para esses Serviços. Para o proxy de entrada, escolha um valor de nodePort do tráfego HTTP e HTTPS. Consulte Como ativar o modo de balanceamento de carga manual para mais informações.

  1. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado para o servidor da API Kubernetes.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada.

  2. No campo Porta do nó do plano de controle, insira um valor nodePort para o servidor da API Kubernetes. O servidor da API Kubernetes de um cluster de usuário é executado no cluster de administrador.

  3. No campo Porta do nó HTTP de entrada, insira um valor nodePort para o tráfego HTTP do proxy de entrada.

  4. No campo Porta de nó HTTPS de entrada, insira um valor nodePort para o tráfego HTTPS ao proxy de entrada.

  5. No campo Porta do nó do servidor de conectividade, insira um valor nodePort para o servidor da Konnectivity.

  6. Clique em Continuar.

Plano de controle

Revise os valores padrão configurados para os nós no cluster de administrador que executam os componentes do plano de controle do cluster de usuário e ajuste os valores conforme necessário.

  1. No campo vCPUs de nós do plano de controle, insira o número de vCPUs (mínimo de 4) para cada nó de cluster de administrador que serve como plano de controle do cluster de usuário.
  2. No campo Memória do nó do plano de controle, insira o tamanho da memória em MiB (mínimo de 8.192 e precisa ser um múltiplo de 4) para cada nó do cluster de administrador que serve como plano de controle para o cluster de usuário.
  3. Em Nós do plano de controle, selecione o número de nós do plano de controle para o cluster de usuário. Por exemplo, é possível selecionar um nó do plano de controle para um ambiente de desenvolvimento e três nós do plano para alta disponibilidade (HA, na sigla em inglês). O plano de controle do usuário fica em um nó do cluster de administrador. Portanto, certifique-se de ter reservado endereços IP suficientes para cada nó do plano de controle. Para mais informações, consulte De quantos endereços IP um cluster de administrador precisa?.

  4. Clique em Continuar para acessar a seção Recursos.

Recursos

Nesta seção, são exibidos os recursos e as operações ativados no cluster.

Os itens a seguir são ativados automaticamente e não podem ser desativados:

Os itens a seguir são ativados por padrão, mas você pode desativá-los:

  • Ativar o driver CSI do vSphere: também chamado de plug-in do vSphere Container Storage. O driver da Interface de Armazenamento de Contêiner (CSI, na sigla em inglês) é executado em um cluster nativo do Kubernetes implantado no vSphere para provisionar volumes permanentes no armazenamento do vSphere. Para mais informações, consulte Como usar o driver da interface de armazenamento do contêiner do vSphere.
  • Ativar grupos de antiafinidade: as regras de antiafinidade do VMware Distribuird Resource Scheduler (DRS) são criadas automaticamente para os nós do cluster de usuário, fazendo com que eles sejam distribuídos por pelo menos três hosts físicos. no seu data center. Verifique se o ambiente vSphere atende aos requisitos.

Pools de nós

O cluster será criado com pelo menos um pool de nós. Um pool de nós é um modelo para os grupos de nós criados nesse cluster. Para mais informações, consulte Como criar e gerenciar pools de nós.

  1. Na seção Detalhes do pool de nós, preencha o seguinte:

    1. Insira o Nome do pool de nós ou aceite "default-pool" como o nome.
    2. O número de vCPUs de cada nó no pool (mínimo de 4 por worker do cluster de usuário)
    3. Insira o tamanho da memória em mebibytes (MiB) para cada nó no pool (mínimo de 8.192 MiB por nó de trabalho do cluster de usuário, e precisa ser um múltiplo de 4).
    4. No campo Nodes, insira o número de nós no pool (mínimo de três). Se você tiver inserido endereços IP estáticos para os IPs do nó na seção Rede, verifique se você inseriu endereços IP suficientes para acomodar esses nós do cluster de usuário.
    5. Selecione o tipo de imagem do SO: Ubuntu, Ubuntu Containerd ou COS.
    6. Digite Tamanho do disco de inicialização em gibibytes (GiB) (mínimo de 40 GiB).
    7. Se você estiver usando MetalLB como balanceador de carga, ele precisará ser ativado em pelo menos um pool de nós. Deixe a opção Usar este pool de nós para balanceamento de carga MetalLB selecionada ou adicione outro pool de nós para usar no MetalLB.
  2. NaMetadados do pool de nós (opcional) seção, se quiser adicionar o Kubernetes rótulos e taints , faça o seguinte:

    1. Clique em + Adicionar rótulos do Kubernetes. Insira a Chave e o Valor do rótulo. Repita quantas vezes forem necessárias.
    2. Clique em + Adicionar taint. Insira Key, Value e Effect para o taint. Repita quantas vezes forem necessárias.

Verificar e concluir

Clique em Verificar e concluir para criar o cluster de usuário. Leva 15 minutos ou mais para criar o cluster de usuário. O console exibe mensagens de status durante a verificação das configurações e a criação do cluster no data center.

Se for encontrado um erro ao verificar as configurações, o console exibirá uma mensagem de erro que deve estar clara o suficiente para que você corrija o problema de configuração e tente criar o cluster novamente.

Para mais informações sobre possíveis erros e como corrigi-los, consulte Resolver problemas na criação de clusters de usuário no console do Google Cloud.

conecte-se ao cluster de usuário

Quando você cria um cluster de usuário no console, o cluster é configurado com as políticas de controle de acesso baseado em papel (RBAC, na sigla em inglês) do Kubernetes para que você possa fazer login no cluster usando sua identidade do Google Cloud. Para configurar o cluster e o projeto para permitir que outros operadores façam login usando a identidade do Google Cloud, consulte Como configurar o gateway do Connect.

Todos os clusters têm um endpoint canônico. O endpoint expõe o servidor da API Kubernetes que kubectl e outros serviços usam para se comunicar com o plano de controle do cluster pela porta TCP 443. Esse endpoint não pode ser acessado na Internet pública. Se você tiver acesso ao endpoint particular do cluster por meio da VPC, poderá se conectar diretamente ao endpoint particular e gerar um arquivo kubeconfig diretamente. Caso contrário, use o gateway do Connect. Nesse caso, kubectl usa o Connect, que encaminha o tráfego para o endpoint particular em seu nome com segurança.

Para acessar o cluster de usuário pela linha de comando, você precisa de um arquivo kubeconfig. Há duas maneiras de gerar um arquivo kubeconfig:

  • Use o gateway do Connect para acessar o cluster em um computador que tenha a CLI do Google Cloud instalada. O gateway do Connect permite gerenciar seus clusters com facilidade e segurança. Para mais informações, consulte Como se conectar a clusters registrados com o gateway do Connect.

  • Para acesso direto a endpoints particulares, crie um arquivo kubeconfig na estação de trabalho do administrador e gerencie o cluster.

Aguarde até que o console indique que o status do cluster de usuário está íntegro.

Conectar gateway

  1. Inicialize a CLI gcloud para uso com o projeto host da frota ou execute os seguintes comandos para fazer login com sua Conta do Google, defina o projeto host da frota como o padrão e atualize os componentes:

    gcloud auth login
    gcloud config set project FLEET_HOST_PROJECT_ID
    gcloud components update
    
  2. Busque as credenciais de cluster usadas para interagir com o gateway do Connect. No comando a seguir, substitua MEMBERSHIP_NAME pelo nome do seu cluster. Nos clusters do Anthos no VMware, o nome da associação é igual ao nome do cluster.

    gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
    

    Esse comando retorna um Conectar-se específico ao gatewaykubeconfig especial que permite a conexão com o cluster por meio do gateway.

    Depois de ter as credenciais necessárias, é possível executar comandos usando kubectl normalmente para qualquer cluster do Kubernetes. Não é necessário especificar o nome do arquivo kubeconfig, por exemplo:

    kubectl get namespaces
    

Estação de trabalho do administrador

Para criar o arquivo kubeconfig do cluster de usuário na estação de trabalho de administrador, execute o comando a seguir para salvar um novo arquivo kubeconfig para o cluster de usuário localmente. Substitua:

  • CLUSTER_NAME: o nome do cluster de usuário recém-criado
  • ADMIN_CLUSTER_KUBECONFIG especifica o caminho até o arquivo kubeconfig do cluster de administrador;
  • USER_CLUSTER_KUBECONFIG: o nome do arquivo kubeconfig do cluster de usuário gerado pelo comando
kubectl get secret admin \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  -n CLUSTER_NAME \
  -o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

Depois de salvar o arquivo, comece a acessar o cluster de usuário usando kubectl na estação de trabalho de administrador, por exemplo:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

A seguir