Esta é a segunda parte de um guia que explica uma pequena instalação de prova de conceito do GKE no VMware. A primeira parte é Configurar uma infraestrutura mínima, que mostra como planejar seus endereços IP e a infraestrutura necessária do vSphere e do Google Cloud para sua implantação. Este documento se baseia na configuração e no planejamento feitos na seção anterior e mostra como criar uma estação de trabalho de administrador, um cluster de administrador e um cluster de usuário no ambiente vSphere, usando modelos simples que podem ser preencha este documento. Depois, você pode implantar um aplicativo.
Assim como a configuração de infraestrutura desta instalação simples, os clusters configurados usando este documento podem não ser adequados para suas necessidades de produção e casos de uso reais. Para mais informações, práticas recomendadas e instruções para instalações de produção, consulte os guias de instalação.
Antes de começar
Verifique se você configurou seus ambientes do vSphere e do Google Cloud, conforme descrito em Configurar infraestrutura mínima.
Se você quiser usar o Terraform para criar o cluster de usuário, use o Terraform na estação de trabalho do administrador ou em outro computador.
Visão geral do procedimento
Estas são as principais etapas envolvidas na configuração:
Faça login na Google Cloud CLI com uma conta que tenha as permissões necessárias para criar contas de serviço.
Reúna as informações necessárias para configurar o GKE no VMware, incluindo seu nome de usuário e senha do vCenter e os endereços IP que você preparou na seção anterior.
Crie uma estação de trabalho de administrador que tenha os recursos e as ferramentas necessários para criar clusters de administrador e de usuário, incluindo as contas de serviço extras necessárias para concluir a configuração.
Crie um cluster de administrador para gerenciar e atualizar o cluster de usuário.
Crie um cluster de usuário para executar cargas de trabalho.
1. Faça login no Google Cloud CLI
A configuração do GKE no VMware requer várias
contas de serviço
com permissões diferentes. Embora você precise criar a conta de serviço de acesso a componentes manualmente, a ferramenta de linha de comando gkeadm
pode criar e configurar versões padrão das contas restantes para você como parte da criação da estação de trabalho do administrador. Para isso, no entanto, você precisa fazer login na Google Cloud CLI com uma conta que tenha as permissões necessárias para criar e configurar contas de serviço, já que gkeadm
usa sua CLI gcloud atual account
propriedade ao fazer essa configuração.
Faça login na CLI gcloud. Você pode usar qualquer Conta do Google, mas ela precisa ter as permissões necessárias. Se você seguiu a parte anterior deste guia, provavelmente já fez login com uma conta apropriada para criar sua conta de serviço de acesso a componentes.
gcloud auth login
Verifique se a propriedade
account
da CLI gcloud está definida corretamente:gcloud config list
A saída mostra o valor da propriedade
account
do SDK. Exemplo:[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Verifique se você tem os componentes mais recentes da gcloud CLI instalados:
gcloud components update
Dependendo de como você instalou a gcloud CLI, talvez você veja a seguinte mensagem: "Não é possível executar esta ação porque o gerenciador de componentes da CLI do Google Cloud está desativado para esta instalação. Execute o comando a seguir para atingir o mesmo resultado para esta instalação:" Siga as instruções para copiar e colar o comando e atualizar os componentes.
2. Coletar informações
Use as informações preparadas em Configurar infraestrutura mínima para editar os marcadores na tabela a seguir:
Detalhes do vSphere | |
---|---|
O nome de usuário da sua conta do vCenter | USERNAME |
A senha da sua conta do vCenter | PASSWORD |
Seu endereço do vCenter Server | ADDRESS |
O caminho para o certificado CA raiz do servidor vCenter na máquina que você usará para criar a estação de trabalho do administrador | CA_CERT_PATH |
O nome do seu data center do vSphere | DATA_CENTER |
O nome do seu cluster do vSphere | VSPHERE_CLUSTER |
O nome ou o caminho do pool de recursos do vSphere. Para mais informações, consulte vcenter.resourcePool. | RESOURCE_POOL |
O nome do seu armazenamento de dados do vSphere | DATASTORE |
O nome da sua rede do vSphere | NETWORK |
Endereços IP | |
Um endereço IP para sua estação de trabalho de administrador. | ADMIN_WS_IP |
Quatro endereços IP para os nós do cluster de administrador. Isso inclui um endereço para um nó extra que pode ser usado durante o upgrade e a atualização. |
ADMIN_CONTROL_PLANE_NODE_IP_1 ADMIN_CONTROL_PLANE_NODE_IP_2 ADMIN_CONTROL_PLANE_NODE_IP_3 |
Um endereço IP para o nó do plano de controle no cluster de usuário. |
USER_CONTROL_PLANE_NODE_IP |
Quatro endereços IP para os nós do cluster de usuário. Isso inclui um endereço para um nó extra que pode ser usado durante o upgrade e a atualização. |
USER_NODE_IP_1 USER_NODE_IP_2 USER_NODE_IP_3 USER_NODE_IP_4 |
Um endereço IP virtual (VIP) para o servidor da API Kubernetes do cluster de administrador. | ADMIN_CONTROL_PLANE_VIP |
Um VIP para o servidor da API Kubernetes do cluster de usuário. | USER_CONTROL_PLANE_VIP |
Um VIP de entrada para o cluster de usuário. | USER_INGRESS_VIP |
Dois VIPs para serviços do tipo LoadBalancer no cluster de usuário. |
SERVICE_VIP_1 SERVICE_VIP_2 |
O endereço IP de um servidor DNS que pode ser acessado na estação de trabalho do administrador e nos nós do cluster | DNS_SERVER_IP |
O endereço IP de um servidor NTP acessível a partir da estação de trabalho do administrador e dos nós do cluster | NTP_SERVER_IP |
O endereço IP do gateway padrão da sub-rede que tem a estação de trabalho do administrador e os nós do cluster. | DEFAULT_GATEWAY_IP |
A máscara de rede da sub-rede que tem a estação de trabalho do administrador e os nós do cluster Exemplo: 255.255.255.0 |
NETMASK |
Se sua rede estiver protegida por um servidor proxy, o URL do servidor proxy. Para mais informações, consulte proxy. Preencha manualmente no arquivo de configuração da estação de trabalho do administrador, se necessário. | PROXY_URL |
Intervalos de CIDR para serviços e pods | |
Os clusters de administrador e de usuário precisam de um intervalo CIDR para serviços e um intervalo CIDR para pods. Use os valores pré-preenchidos a seguir, a menos que você precise alterá-los para evitar sobreposição com outros elementos na sua rede: | |
Um intervalo CIDR para serviços no cluster de administrador | 10.96.232.0/24 |
Um intervalo CIDR para pods no cluster de administrador | 192.168.0.0/16 |
Um intervalo CIDR para serviços no cluster de usuário | 10.96.0.0/20 |
Um intervalo CIDR para pods no cluster de usuário | 192.168.0.0/16 |
Detalhes do Google Cloud | |
O ID do projeto do Cloud escolhido | PROJECT_ID |
O caminho para o arquivo de chave JSON para a conta de serviço de acesso a componentes configurada na seção anterior, na máquina que você usará para criar sua estação de trabalho de administrador. | COMPONENT_ACCESS_SA_KEY_PATH |
: o endereço de e-mail
associado à sua Conta do Google. Por exemplo, alex@example.com . |
GOOGLE_ACCOUNT_EMAIL |
3. Criar uma estação de trabalho de administrador
Antes de criar clusters, você precisa criar uma estação de trabalho de administrador
e se conectar a ela usando SSH. A estação de trabalho do administrador é uma VM independente com
as ferramentas e os recursos necessários para criar clusters do GKE Enterprise no
ambiente do vSphere. Use a ferramenta de linha de comando gkeadm
para criar a
estação de trabalho do administrador.
Fazer o download do gkeadm
Faça o download de gkeadm
no seu diretório atual.
gsutil cp gs://gke-on-prem-release/gkeadm/1.28.200-gke.111/linux/gkeadm ./ chmod +x gkeadm
Você precisa da versão gkeadm
(que também é a versão do GKE no VMware)
para criar os arquivos de configuração do cluster de administrador e de usuário. Para verificar a versão de gkeadm
, execute o seguinte:
./gkeadm version
O exemplo de saída a seguir mostra a versão.
gkeadm 1.28.300 (1.28.200-gke.111)
Embora seja possível
fazer o download de outra versão do gkeadm
,
este guia pressupõe que você esteja instalando a 1.28.200-gke.111
e usa essa versão em todos os arquivos de configuração e comandos.
Criar o arquivo de credenciais
Crie e salve um arquivo chamado credential.yaml
no seu diretório atual com o seguinte conteúdo:
apiVersion: v1 kind: CredentialFile items: - name: vCenter username: "USERNAME" password: "PASSWORD"
Criar o arquivo de configuração da estação de trabalho do administrador
Crie e salve novamente um arquivo chamado admin-ws-config.yaml
no seu diretório atual com o seguinte conteúdo:
gcp: componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH" vCenter: credentials: address: "ADDRESS" fileRef: path: "credential.yaml" entry: "vCenter" datacenter: "DATA_CENTER" datastore: "DATASTORE" cluster: "VSPHERE_CLUSTER" network: "NETWORK" resourcePool: "RESOURCE_POOL" caCertPath: "CA_CERT_PATH" proxyUrl: "" adminWorkstation: name: "minimal-installation-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk dataDiskMB: 512 network: ipAllocationMode: "static" hostConfig: ip: "ADMIN_WS_IP" gateway: "DEFAULT_GATEWAY_IP" netmask: "NETMASK" dns: - "DNS_SERVER_IP" proxyUrl: "" ntpServer: ntp.ubuntu.com
Criar a estação de trabalho de administrador
Crie a estação de trabalho do administrador usando o seguinte comando:
./gkeadm create admin-workstation --auto-create-service-accounts
Execute este comando:
- Cria a estação de trabalho do administrador
- Cria automaticamente outras contas de serviço necessárias para a instalação.
- Cria arquivos de configuração de modelo para os clusters de administrador e de usuário
A saída fornece informações detalhadas sobre a criação da estação de trabalho do administrador e fornece um comando que pode ser usado para ter uma conexão SSH com a estação de trabalho do administrador:
... Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49 ********************************************************************
Para informações mais detalhadas sobre como criar uma estação de trabalho de administrador, consulte Criar uma estação de trabalho de administrador.
Conectar-se à estação de trabalho do administrador
Use o comando exibido na saída anterior para conseguir uma conexão SSH para a estação de trabalho do administrador. Exemplo:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
Se você precisar encontrar esse comando novamente, o gkeadm
gerará um arquivo chamado gke-admin-ws-...
no diretório da sua máquina local em que o gkeadm create admin-workstation
foi executado.
Ele contém detalhes sobre a estação de trabalho do administrador, incluindo o comando SSH.
Na estação de trabalho do administrador, digite exit
para encerrar a conexão SSH e
retornar à sua máquina local.
Copie a chave de registro de auditoria para a estação de trabalho do administrador
Na seção anterior, você criou um arquivo de chave JSON para sua conta de serviço de registro de auditoria.
Copie o arquivo de chave JSON para o diretório inicial na estação de trabalho do administrador. Por exemplo, na sua máquina local:
scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~
Ver arquivos na estação de trabalho do administrador
Mais uma vez, acesse uma conexão SSH com a estação de trabalho do administrador.
Na estação de trabalho do administrador, liste os arquivos no diretório principal:
ls -1
A saída pode incluir:
admin-cluster.yaml
, um arquivo de configuração de modelo para criar seu cluster de administrador.user-cluster.yaml
, um arquivo de configuração de modelo para criar o cluster de usuário.- O arquivo de certificado do vCenter que você especificou na configuração da estação de trabalho do administrador
- O arquivo
credential.yaml
que você especificou na configuração da estação de trabalho do administrador. - O arquivo de chave JSON da conta de serviço de registro de auditoria.
- Arquivos de chave JSON para duas contas de serviço
gkeadm
criadas para você: uma conta de serviço connect-register e uma conta de monitoramento de geração de registros, bem como o arquivo de chave para a conta de serviço de acesso ao componente que você criou mais cedo.
Exemplo:
admin-cluster.yaml admin-ws-config.yaml audit-logging-key.json sa-key.json connect-register-sa-2203040617.json credential.yaml log-mon-sa-2203040617.json logs vc01-cert.pem user-cluster.yaml
Você precisará especificar alguns desses nomes nos arquivos de configuração para criar clusters. Use os nomes dos arquivos como valores para os marcadores na tabela a seguir:
Nome de arquivo da chave da conta de serviço do connect-register Exemplo: connect-register-sa-2203040617.json |
CONNECT_REGISTER_SA_KEY |
Nome de arquivo da chave da conta de serviço logging-monitoring Exemplo: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY |
Nome do arquivo da chave da conta de serviço de registro de auditoria Exemplo: audit-logging-key.json |
AUDIT_LOG_SA_KEY |
Nome do arquivo da chave da conta de serviço do componente Exemplo: sa-key.json |
COMPONENT_ACCESS_SA_KEY |
Nome do arquivo do certificado do vCenter Exemplo: vc01-cert.pem |
CA_CERT_FILE |
4. Criar um cluster de administrador
Agora que você tem uma estação de trabalho de administrador configurada com o vCenter e outros detalhes, pode usá-la para criar um cluster de administrador no ambiente do vSphere. Antes de iniciar esta etapa, verifique se você tem uma conexão SSH com a estação de trabalho do administrador, conforme descrito acima. Todos os comandos a seguir são executados na estação de trabalho de administrador.
Criar o arquivo de configuração do cluster de administrador
Abra admin-cluster.yaml
e substitua a definição de pelo seguinte:
apiVersion: v1 kind: AdminCluster name: "minimal-installation-admin-cluster" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.200-gke.111-full.tgz" vCenter: address: "ADDRESS" datacenter: "DATA_CENTER" cluster: "VSPHERE_CLUSTER" resourcePool: "RESOURCE_POOL" datastore: "DATASTORE" caCertPath: "CA_CERT_FILE" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1" hostname: "admin-cp-vm-1" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2" hostname: "admin-cp-vm-2" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false cloudAuditLogging: projectID: "PROJECT_ID" clusterLocation: us-central1 serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"
Validar o arquivo de configuração do cluster de administrador
Verifique se o arquivo de configuração do cluster de administrador é válido e pode ser usado para a criação do cluster:
gkectl check-config --config admin-cluster.yaml
Importe imagens do SO para o vSphere.
Execute gkectl prepare
com o arquivo de configuração completo para importar imagens de SO de nó para o vSphere:
gkectl prepare --config admin-cluster.yaml --skip-validation-all
A execução desse comando importa as imagens para o vSphere e as marca como modelos de VM, incluindo a imagem do cluster de administrador.
Esse comando pode levar alguns minutos para ser concluído.
Crie o cluster de administrador
Crie o cluster de administrador:
gkectl create admin --config admin-cluster.yaml
Retomar a criação do cluster de administrador após uma falha
Se a criação do cluster de administrador falhar ou for cancelada, será possível executar o comando create
novamente:
gkectl create admin --config admin-cluster.yaml
Localizar o arquivo kubeconfig do cluster de administrador
O comando gkectl create admin
cria um arquivo kubeconfig chamado
kubeconfig
no diretório atual. Você precisará desse arquivo kubeconfig
mais tarde para interagir com o cluster de administrador.
Verificar se o cluster de administrador está em execução
Verifique se o cluster de administrador está em execução:
kubectl get nodes --kubeconfig kubeconfig
A saída mostra os nós do cluster de administrador. Exemplo:
gke-admin-master-hdn4z Ready control-plane,master ... gke-admin-node-7f46cc8c47-g7w2c Ready ... gke-admin-node-7f46cc8c47-kwlrs Ready ...
Ativar autorização RBAC
Para conceder à conta de usuário o papel clusterrole/cluster-admin
do Kubernetes no cluster, execute o seguinte comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-admin-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=kubeconfig \ --context=minimal-installation-admin-cluster \ --apply
A saída desse comando é semelhante à seguinte, truncada para facilitar a leitura:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre outras coisas, a política de RBAC permite que você faça login no cluster no Console do Google Cloud usando o Google Identity para ver mais detalhes do cluster.
Registro automático na API GKE On-Prem
Como a API GKE On-Prem está ativada no seu projeto, o cluster é
registrado automaticamente nela. Registrar seu cluster
de administrador na API GKE On-Prem permite usar ferramentas padrão (o
Console do Google Cloud, a Google Cloud CLI ou o
Terraform) para criar, fazer upgrade,
atualizar e excluir clusters de usuário gerenciados pelo cluster de administrador. O registro do cluster também permite executar comandos gcloud
para receber informações sobre seu cluster.
5. Criar um cluster de usuário
Esta seção fornece etapas para criar o cluster de usuário usando o
console, gkectl
, Terraform ou a CLI gcloud.
gkectl
Verifique se você tem uma conexão SSH com a estação de trabalho do administrador, conforme descrito acima, antes de iniciar este procedimento. Todos os comandos a seguir são executados na estação de trabalho de administrador.
Criar o arquivo de bloco de IP do cluster de usuário
Crie um arquivo chamado
user-ipblock.yaml
.Copie e cole o conteúdo a seguir em
user-ipblock.yaml
e salve o arquivo:blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_NODE_IP_1" hostname: "user-vm-1" - ip: "USER_NODE_IP_2" hostname: "user-vm-2" - ip: "USER_NODE_IP_3" hostname: "user-vm-3" - ip: "USER_NODE_IP_4" hostname: "user-vm-4"
Criar o arquivo de configuração do cluster de usuário
Crie um arquivo chamado
user-cluster.yaml
no mesmo diretório queuser-ipblock.yaml
.Copie e cole o conteúdo a seguir em
user-cluster.yaml
e salve o arquivo:
apiVersion: v1 kind: UserCluster name: "minimal-installation-user-cluster" gkeOnPremVersion: "1.28.200-gke.111" enableControlplaneV2: true network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: "10.96.0.0/20" podCIDR: "192.168.0.0/16" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_CONTROL_PLANE_NODE_IP" hostname: "cp-vm-1" loadBalancer: vips: controlPlaneVIP: "USER_CONTROL_PLANE_VIP" ingressVIP: "USER_INGRESS_VIP" kind: "MetalLB" metalLB: addressPools: - name: "uc-address-pool" addresses: - "USER_INGRESS_VIP/32" - "SERVICE_VIP_1/32" - "SERVICE_VIP_2/32" enableDataplaneV2: true nodePools: - name: "uc-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: false gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false autoRepair: enabled: true
Validar a configuração e criar o cluster
Verifique se o arquivo de configuração do cluster de usuário é válido e pode ser usado para a criação do cluster:
gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
Crie o cluster de usuário:
gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
A criação do cluster leva aproximadamente 30 minutos.
Localizar o arquivo kubeconfig do cluster de usuário
O comando gkectl create cluster
cria um arquivo kubeconfig chamado
USER_CLUSTER_NAME-kubeconfig
no diretório atual. Você precisará desse arquivo
kubeconfig mais tarde para interagir com seu cluster de usuários.
Verificar se o cluster de usuário está em execução
Verifique se o cluster de usuário está em execução:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Substitua USER_CLUSTER_KUBECONFIG pelo caminho do arquivo kubeconfig do cluster de usuário.
A saída mostra os nós do cluster de usuário. Exemplo:
cp-vm-1 Ready control-plane,master user-vm-1 Ready user-vm-2 Ready user-vm-3 Ready
Ativar autorização RBAC
Para conceder à conta de usuário o papel clusterrole/cluster-admin
do Kubernetes no cluster, execute o seguinte comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-user-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=USER_CLUSTER_KUBECONFIG \ --context=minimal-installation-user-cluster \ --apply
A saída desse comando é semelhante à seguinte, truncada para facilitar a leitura:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre outras coisas, a política de RBAC permite que você faça login no cluster no Console do Google Cloud usando o Google Identity para ver mais detalhes do cluster.
Registro automático na API GKE On-Prem
Como a API GKE On-Prem está ativada no seu projeto, o cluster é
registrado automaticamente nela. Isso permite usar o
console ou a CLI gcloud para visualizar
os detalhes do cluster e gerenciar o ciclo de vida dele. Por exemplo, é possível executar comandos
gcloud
para
receber informações sobre o cluster de usuário.
Console
No console do Google Cloud, acesse a página Criar um cluster do GKE no VMware.
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.
As seções a seguir orientam você na configuração do cluster de usuários.
Pré-requisitos
Conheça as informações na página Pré-requisitos.
Na parte de baixo da página, clique em Próximo.
Noções básicas sobre clusters
Em Nome, insira um nome para o cluster de usuário, por exemplo,
minimal-installation-user-cluster
.Em Cluster de administrador, selecione minimal-installation-admin-cluster.
No campo Local da API do GCP, selecione us-central1.
Em Versão, selecione 1.28.200-gke.111.
Não é necessário abrir as seções Autorização ou configuração do vCenter.
Clique em Próxima.
Plano de controle
Em IPs de nós do plano de controle, em Gateway, digite DEFAULT_GATEWAY_IP.
Em Máscara de sub-rede, insira NETMASK.
Em Endereços IP, no Endereço IP 1, insira USER_CONTROL_PLANE_NODE_IP. Deixe o Nome do host 1 em branco.
Clique em Próxima.
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 adicional para um nó temporário, que é necessário durante upgrades de cluster, atualizações e reparo automático. Para mais informações, consulte De quantos endereços IP um cluster de usuário precisa?.
Em IPs de nós de trabalho, para Modo IP, verifique se Estático está selecionado.
Em Gateway, insira DEFAULT_GATEWAY_IP.
Em Máscara de sub-rede, insira NETMASK.
Em Endereços IP, digite estes endereços:
- USER_NODE_IP_1
- USER_NODE_IP_2
- USER_NODE_IP_3
- USER_NODE_IP_4
Deixe os campos Nome do host em branco.
Em CIDR do serviço, digite 10.96.0.0/20. Em CIDR do pod, insira 192.168.0.0/16.
Em Servidor DNS 1, insira DNS_SERVER_IP.
Em Servidor NTP 1, insira NTP_SERVER_IP.
Deixe Domínio de pesquisa de DNS em branco.
Clique em Próxima.
Balanceador de carga
Em Tipo de balanceador de carga, selecione Agrupado com MetalLB.
Em Pools de endereços, use o nome padrão.
Em Endereços IP, para Intervalo de endereços IP 1, digite USER_INGRESS_VIP/32.
Clique em + Adicionar intervalo de endereços IP. Em Intervalo de endereços IP, insira SERVICE_VIP_1/32.
Clique em + Adicionar intervalo de endereços IP. Em Intervalo de endereços IP, insira SERVICE_VIP_2/32.
Em Atribuição de endereços IP, selecione Automático.
Deixe a opção Evitar endereços IP com bugs desmarcada.
Em IPs virtuais, digite USER_CONTROL_PLANE_VIP em VIP do plano de controle. O VIP do ingresso já está preenchido.
Clique em Continuar.
Recursos
Não altere as configurações padrão.
Clique em Próxima.
Pools de nós
Não altere as configurações padrão.
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 de clusters registrados na API GKE On-Prem.
Terraform
Nesta seção, mostramos como criar um cluster de usuário e um pool de nós usando o Terraform. Para mais informações e outros exemplos, consulte os seguintes artigos:
Crie um diretório e um novo arquivo nele. O nome do arquivo precisa ter a extensão
.tf
. Neste guia, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Verifique o recurso do Terraform do cluster de usuário:
O exemplo de recurso do Terraform a seguir é preenchido com os valores inseridos na tabela de planejamento na seção anterior.
resource "google_gkeonprem_vmware_cluster" "cluster-basic" { name = "minimal-installation-user-cluster" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster" description = "User cluster config with MetalLB, static IPs, and Controlplane V2" enable_control_plane_v2 = "true" on_prem_version = "1.28.200-gke.111" control_plane_node { cpus = 4 memory = 8192 replicas = 1 } network_config { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] host_config { dns_servers = ["DNS_SERVER_IP"] ntp_servers = ["NTP_SERVER_IP"] } static_ip_config { ip_blocks { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_NODE_IP_1" hostname = "user-vm-1" } ips { ip = "USER_NODE_IP_2" hostname = "user-vm-2" } ips { ip = "USER_NODE_IP_3" hostname = "user-vm-3" } ips { ip = "USER_NODE_IP_4" hostname = "user-vm-4" } } } control_plane_v2_config { control_plane_ip_block { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_CONTROL_PLANE_NODE_IP" hostname = "cp-vm-1" } } } } load_balancer { vip_config { control_plane_vip = "USER_CONTROL_PLANE_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "uc-address-pool" manual_assign = "true" addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"] } } } authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } provider = google-beta } resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" { name = "uc-node-pool" project = "PROJECT_ID" vmware_cluster = "minimal-installation-user-cluster" location = "us-central1" config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = "true" } depends_on = [ google_gkeonprem_vmware_cluster.cluster-basic ] provider = google-beta }
Copie o recurso do Terraform para
main.tf
e salve o arquivo.Inicialize e crie o plano do Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o provedor do Google Cloud.
Revise a configuração e faça alterações, se necessário:
terraform plan
Aplique o plano do Terraform para criar o cluster de usuário:
terraform apply
Quando solicitado, digite
yes
.Leva cerca de 15 minutos (ou mais, dependendo da rede) para criar o cluster de usuário básico e o pool de nós.
gcloud
Crie o cluster:
gcloud container vmware clusters create minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1 \ --version=1.28.200-gke.111 \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \ --control-plane-vip=USER_CONTROL_PLANE_VIP \ --ingress-vip=USER_INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \ --dns-servers=DNS_SERVER_IP \ --ntp-servers=NTP_SERVER_IP \ --enable-control-plane-v2 \ --enable-dataplane-v2 \ --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'
A saída deste comando terá esta aparência:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
No exemplo de saída, a string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
é o OPERATION_ID
da operação de longa duração. Descubra
o status da operação com o seguinte comando:
gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
Para mais informações, consulte gcloud container vmware operations.
Leva 15 minutos ou mais para criar o cluster de usuário. É possível visualizar o cluster no console na página de visão geral dos clusters do Google Kubernetes Engine.
Criar um pool de nós:
gcloud container vmware node-pools create uc-node-pool \ --cluster=minimal-installation-user-cluster \ --project=PROJECT_ID \ --location=us-central1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=4 \ --memory=8192 \ --replicas=3 \ --enable-load-balancer
A seguir
Você concluiu esta instalação mínima do GKE no VMware. Como acompanhamento opcional, você pode ver sua instalação em ação implantando um aplicativo.