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
Se você não for proprietário do projeto, precisará receber o papel roles/gkeonprem.admin.
Se você quiser acessar as páginas do Anthos e do Google Kubernetes Engine no console, também precisará ter os seguintes papéis:
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: esse 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 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.
Se você ainda não criou um cluster de administrador, preencha a seção
gkeConnect
no arquivo de configuração do cluster de administrador.Se você tiver um cluster de administrador, mas não tiver registrado ele, consulte Registrar um cluster de administrador.
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.
Se você ainda não criou um cluster de administrador, preencha a seção
cloudAuditLogging
no arquivo de configuração do cluster de administrador.Para atualizar um cluster de administrador atual, consulte Ativar ou desativar a geração de registros para o Cloud Audit Logging para o 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.
Se você ainda não criou um cluster de administrador, preencha a seção
stackdriver
no arquivo de configuração do cluster de administrador.Para atualizar um cluster de administrador atual, consulte Ativar ou desativar a geração de registros e o monitoramento do cluster de administrador.
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 instalarkubectl
, 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.
No console do Google Cloud, acesse a página "Clusters do Anthos".
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.
Clique em Criar cluster.
Na caixa de diálogo, clique em No local.
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.
- Insira um nome para o cluster de usuário.
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.
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
Os clusters do Anthos na versão VMware para seu cluster de usuário.
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.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?.
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.
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:
- Digite o endereço IP do gateway para o cluster de usuário.
Insira a máscara de sub-rede para os nós do cluster de usuário.
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.
Clique em + Adicionar endereço IP conforme necessário para inserir mais endereços IP.
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.
Se você selecionou Modo de IP estático, especifique as seguintes informações na seção Configuração do host:
- Digite os endereços IP dos servidores DNS.
- Digite os endereços IP dos servidores NTP.
- Também é possível digitar domínios de pesquisa DNS.
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.
Na seção Pools de endereços, configure pelo menos um pool de endereços da seguinte maneira:
Insira um Nome para o pool de nós.
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).
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 intervaloOs endereços IP de cada pool não podem se sobrepor e precisam estar na mesma sub-rede que os nós do cluster.
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
.
- 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
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.
Quando terminar, clique em Concluído.
Se necessário, clique em Adicionar pool de endereços.
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.
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.
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.
No campo Endereço, digite o endereço do balanceador de carga F5 BIG-IP.
No campo Partição, insira o nome de uma partição BIG-IP que você criou para o cluster de usuário.
No campo Nome do pool de sNAT, insira o nome do pool de SNAT, se aplicável.
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.
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.
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.No campo Porta do nó HTTP de entrada, insira um valor
nodePort
para o tráfego HTTP do proxy de entrada.No campo Porta de nó HTTPS de entrada, insira um valor
nodePort
para o tráfego HTTPS ao proxy de entrada.No campo Porta do nó do servidor de conectividade, insira um valor
nodePort
para o servidor da Konnectivity.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.
- 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.
- 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.
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?.
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:
- Cloud Logging de serviços do sistema
- Cloud Monitoring dos serviços do sistema
- O registro de auditoria da atividade do administrador
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.
Na seção Detalhes do pool de nós, preencha o seguinte:
- Insira o Nome do pool de nós ou aceite "default-pool" como o nome.
- O número de vCPUs de cada nó no pool (mínimo de 4 por worker do cluster de usuário)
- 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).
- 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.
- Selecione o tipo de imagem do SO: Ubuntu, Ubuntu Containerd ou COS.
- Digite Tamanho do disco de inicialização em gibibytes (GiB) (mínimo de 40 GiB).
- 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.
NaMetadados do pool de nós (opcional) seção, se quiser adicionar o Kubernetes rótulos e taints , faça o seguinte:
- Clique em + Adicionar rótulos do Kubernetes. Insira a Chave e o Valor do rótulo. Repita quantas vezes forem necessárias.
- 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
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
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 gateway
kubeconfig
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
- Implementar um aplicativo
- Resolver problemas na criação de um cluster de usuário no Console do Cloud