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 com os recursos e as ferramentas necessários para criar clusters de administrador e de usuário, incluindo as contas de serviço adicionais 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_NODE_IP_1 ADMIN_NODE_IP_2 ADMIN_NODE_IP_3 ADMIN_NODE_IP_4 |
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 ao componente que você configurou na seção anterior, na máquina que será usada para criar o cluster de administrador. do Google Analytics. | 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.15.9-gke.20/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.15.10 (1.15.9-gke.20)
Embora seja possível
fazer o download de outra versão do gkeadm
,
este guia pressupõe que você esteja instalando a 1.15.9-gke.20
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.
Ver os arquivos gerados
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. - 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 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_PATH |
Nome de arquivo da chave da conta de serviço logging-monitoring Exemplo: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY_PATH |
Nome do arquivo da chave da conta de serviço do componente Exemplo: sa-key.json |
COMPONENT_ACCESS_SA_KEY_FILE |
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 bloco de IP do cluster de administrador
Crie e salve um arquivo chamado admin-ipblock.yaml
no mesmo diretório que admin-cluster.yaml
na sua estação de trabalho de administrador, com o seguinte conteúdo:
blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_NODE_IP_1" hostname: "admin-vm-1" - ip: "ADMIN_NODE_IP_2" hostname: "admin-vm-2" - ip: "ADMIN_NODE_IP_3" hostname: "admin-vm-3" - ip: "ADMIN_NODE_IP_4" hostname: "admin-vm-4"
O campo ips
é uma matriz de endereços IP e nomes de host. Esses são os endereços IP
e nomes de host que o GKE no VMware atribuirá aos
nós do cluster de administrador.
O arquivo de bloco de IP também especifica uma máscara de sub-rede e um gateway padrão para os nós do cluster 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.15.9-gke.20-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" dataDisk: "data-disks/minimal-installation-admin-disk.vmdk" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: admin-ipblock.yaml serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_FILE" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY_PATH" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY_PATH" disableVsphereResourceMetrics: false
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.
Registrar o cluster na API GKE On-Prem
Opcionalmente, registre o cluster na API GKE On-Prem. Registrar o cluster de administrador na API GKE On-Prem permite usar o Console do Google Cloud, a Google Cloud CLI ou o Terraform (em inglês) para fazer upgrade de clusters de usuário gerenciados pelo cluster de administrador.
gcloud container vmware admin-clusters enroll minimal-installation-admin-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1
5. Criar um cluster de usuário
Nesta seção, fornecemos etapas para criar o cluster de usuário usando o
console, gkectl
ou o Terraform.
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.15.9-gke.20" 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_PATH" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY_PATH" 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.
Registrar o cluster na API GKE On-Prem
Opcionalmente, registre o cluster na API GKE On-Prem. Registrar seu cluster de usuário na API GKE On-Prem permite usar o console do Google Cloud ou a Google Cloud CLI para upgrades.
gcloud container vmware clusters enroll minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1
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.15.9-gke.20" 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.15.9-gke.20 \ --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 do Google Cloud na página Clusters do Anthos.
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.