Criar clusters básicos

Esta é a segunda parte de um guia que orienta você em 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 que você fez 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 seu ambiente do vSphere. 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

Visão geral do procedimento

Estas são as principais etapas envolvidas na configuração:

  1. Verifique se você tem todas 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 preparados na seção anterior.
  2. Faça login na Google Cloud CLI com uma conta que tenha as permissões necessárias para criar contas de serviço.
  3. 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.
  4. Crie um cluster de administrador para hospedar o plano de controle do Kubernetes dos clusters de administrador e de usuário, além de gerenciar e atualizar clusters de usuários.
  5. Crie um cluster de usuário que possa executar cargas de trabalho reais.

Coletar informações

Antes de começar a preencher os arquivos de configuração do GKE no VMware, verifique se você tem todas as informações necessárias preparadas em Configurar infraestrutura mínima. Todos os valores a seguir serão necessários para configurar o GKE no VMware e concluir o processo.

Detalhes do vCenter

Endereços IP

Verifique se você tem todos os endereços IP escolhidos em Planejar seus endereços IP, incluindo:

  • Um endereço IP para sua estação de trabalho de administrador.
  • 10 endereços IP para os nós de cluster de administrador e de usuário, incluindo endereços de dois nós extras que podem ser usados durante os upgrades de cluster
  • Um endereço IP virtual (VIP) para o servidor da API Kubernetes do cluster de administrador.
  • Um VIP para o servidor da API Kubernetes do cluster de usuário.
  • Um VIP de entrada para o cluster de usuário.
  • 10 VIPs de serviço para o cluster de usuário.
  • Um intervalo CIDR para pods e serviços de cluster de usuário se precisar usar intervalos não padrão, conforme descrito em Evitar sobreposição.

Os seguintes itens também são necessários:

  • O endereço IP de um servidor DNS.
  • O endereço IP de um servidor NTP.
  • 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.

Detalhes do Google Cloud

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.

  1. 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
    
  2. 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]
    

Criar uma estação de trabalho de administrador.

Antes de criar clusters, você precisa configurar e executar o SSH em uma estação de trabalho de administrador. 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 seu ambiente do vSphere. Nas etapas desta seção, usamos a ferramenta de linha de comando gkeadm, disponível para Linux de 64 bits, Windows 10, Windows Server 2019 e macOS 10.15 e superior.

Gerar modelos

Execute este comando para gerar arquivos de configuração do modelo:

./gkeadm create config

A execução desse comando gera os seguintes arquivos de configuração de modelo no diretório atual:

  • credential.yaml, que você usa para fornecer seus detalhes de login do vCenter
  • admin-ws-config.yaml, que você usa para fornecer as definições de configuração da estação de trabalho do administrador

Preencha o arquivo de credenciais

Em credential.yaml, preencha o nome de usuário e senha do vCenter. Exemplo:

kind: CredentialFile
items:
- name: vCenter
  username: "my-account-name"
  password: "AadmpqGPqq!a"

Preencha o arquivo de configuração da estação de trabalho do administrador

Abra admin-ws-config.yaml para edição. Quando concluído, esse arquivo contém todas as informações que o gkeadm precisa para criar uma estação de trabalho de administrador para essa instalação básica. Alguns campos já estão preenchidos para você com valores padrão ou gerados: não altere esses valores para esta instalação simples.

Preencha os outros campos da seguinte maneira, usando as informações que você coletou anteriormente. Veja um arquivo de configuração de exemplo abaixo se você não souber como formatar campos ou consulte a referência do arquivo de configuração da estação de trabalho do administrador. Mantenha a página aberta em uma guia ou janela separada para fazer referência a ela ao preencher os valores dos campos.

Campo ou seção Instruções
gcp.componentAccessServiceAccountKeyPath O caminho do arquivo de chave JSON que você criou para sua conta de serviço de acesso a componentes.
vCenter.credentials.address O endereço IP ou o nome do host do servidor vCenter.
vCenter.datacenter O nome do data center do vCenter.
vCenter.datastore O nome do armazenamento de dados do vCenter.
vCenter.cluster O nome do seu cluster do vCenter.
vCenter.network O nome da rede vCenter em que você quer criar a estação de trabalho de administrador.
vCenter.resourcePool Defina esse campo como "CLUSTER_NAME/Resources", substituindo CLUSTER_NAME pelo nome do seu cluster do vSphere.
vCenter.caCertPath O caminho para o certificado de CA raiz do servidor vCenter.
proxyURL Se a máquina que você executa para executar o gkeadm precisar de um servidor proxy para acessar a Internet, defina esse campo como o URL do servidor proxy.
adminWorkstation.ipAllocationMode Defina esse campo como "static".
adminWorkstation.network.hostConfig.ip O endereço IP que você escolheu antes para a estação de trabalho do administrador.
adminWorkstation.network.hostConfig.gateway O endereço IP do gateway padrão da sub-rede que você quer usar para a estação de trabalho do administrador e os nós do cluster.
adminWorkstation.network.hostConfig.netmask A máscara de rede da rede que contém sua estação de trabalho do administrador.
adminWorkstation.network.hostConfig.dns Endereços IP para servidores DNS que a estação de trabalho do administrador pode usar.
adminWorkstation.proxyURL Se a rede estiver protegida por um servidor proxy e você quiser que a estação de trabalho do administrador e os clusters usem o mesmo servidor proxy, defina esse campo como o URL do servidor proxy.

Exemplo de arquivo de configuração da estação de trabalho de administrador

Veja um exemplo de um arquivo de configuração da estação de trabalho do administrador preenchido:

gcp:
  componentAccessServiceAccountKeyPath: "/usr/local/google/home/me/keys/component-access-key.json"
vCenter:
  credentials:
    address: "vc01.example"
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  datacenter: "vc01"
  datastore: "vc01-datastore-1"
  cluster: "vc01-workloads-1"
  network: "vc01-net-1"
  resourcePool: "vc01-workloads-1/Resources"
  caCertPath: "/usr/local/google/home/stevepe/certs/vc01-cert.pem"
proxyUrl: ""
adminWorkstation:
  name: gke-admin-ws-220304-014925
  cpus: 4
  memoryMB: 8192
  diskGB: 50
  dataDiskName: gke-on-prem-admin-workstation-data-disk/gke-admin-ws-220304-014925-data-disk.vmdk
  dataDiskMB: 512
  network:
    ipAllocationMode: "static"
    hostConfig:
      ip: "172.16.20.49"
      gateway: "172.16.20.1"
      netmask: "255.255.255.0"
      dns:
      - "203.0.113.1"
  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

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.
  • 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 serviço de geração de registros. Anote o nome dos arquivos de chave JSON da sua conta de serviço connect-register. Você precisará dele mais tarde ao criar clusters.

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

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.

Especificar endereços IP estáticos para o cluster de administrador

Para especificar os endereços IP estáticos que você planejou anteriormente para os nós do cluster de administrador, crie um arquivo de bloco de IP chamado admin-cluster-ipblock.yaml.

Você precisa de cinco endereços IP para os seguintes nós no cluster de administrador:

  • Três nós para executar os complementos e o plano de controle do cluster de administrador

  • Um nó extra a ser usado temporariamente durante upgrades

  • Um nó para executar o plano de controle do cluster de usuário que você criará posteriormente

Veja um exemplo de um arquivo de bloco de endereços IP que tem endereços para cinco nós:

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.50
      hostname: admin-vm-1
    - ip: 172.16.20.51
      hostname: admin-vm-2
    - ip: 172.16.20.52
      hostname: admin-vm-3
    - ip: 172.16.20.53
      hostname: admin-vm-4
    - ip: 172.16.20.54
      hostname: admin-vm-5

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.

No arquivo de bloco de IP, você também especifica uma máscara de sub-rede e um gateway padrão para os nós do cluster de administrador.

Preencher o arquivo de configuração do cluster de administrador.

Abra admin-cluster.yaml para edição. Quando concluído, esse arquivo contém todas as informações que gkectl precisa para criar um cluster de administrador para esta instalação básica. Alguns dos campos já estão preenchidos para você com valores padrão, valores gerados ou valores que você forneceu ao configurar a estação de trabalho do administrador, como detalhes do vCenter: não altere esses valores para essa instalação simples.

Preencha os outros campos da seguinte maneira, usando as informações que você coletou anteriormente. Veja um exemplo de arquivo de configuração abaixo se você não souber como formatar campos ou consulte a referência do arquivo de configuração do cluster de administrador. Mantenha a página aberta em uma guia ou janela separada para fazer referência a ela ao preencher os valores dos campos.

Campo ou seção Instruções
vCenter.dataDisk O nome que você quer usar para o disco de máquina virtual (VMDK) que o instalador cria para armazenar dados de objetos do Kubernetes.
network.hostConfig.dnsServers Endereços IP para servidores DNS que as VMs de cluster podem usar.
network.hostConfig.ntpServers Endereços IP para servidores de tempo que as VMs do cluster podem usar.
network.ipMode.type Defina esse campo como "static".
network.ipMode.ipBlockFilePath O caminho para o arquivo de bloqueio de IP criado anteriormente.
network.serviceCIDR e network.podCIDR Só altere esses valores se você precisar usar intervalos não padrão, conforme descrito em Evitar sobreposição.
loadBalancer.vips.controlPlaneVIP O endereço IP virtual (VIP) que você escolheu para o servidor da API Kubernetes do cluster de administrador.
loadbalancer.kind Defina esse campo como "MetalLB".
antiAffinityGroups Definir esse campo como "false"
gkeConnect.projectID Definir esse campo com o ID do seu projeto do projeto do Google.
gkeConnect.registerServiceAccountKeyPath Definir esse campo como a chave JSON da sua conta de serviço "connect-register".

Exemplo de arquivo de configuração do cluster de administrador

Veja um exemplo de um arquivo de configuração de cluster de administrador preenchido:

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "my-cluster/Resources"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: false
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  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.

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 ...

Criar um cluster de usuário

É possível criar um cluster de usuário para essa instalação simples no Console do Google Cloud ou na linha de comando na estação de trabalho do administrador. No momento, só é possível usar o Console do Google Cloud para criar clusters de usuários.

Console

Essa abordagem usa um serviço do Google Cloud chamado API GKE On-Prem para criar e gerenciar clusters no ambiente vSphere. Quando você cria um cluster de usuário no Console do Google Cloud, essa API é ativada automaticamente no projeto host da frota escolhido. Saiba mais sobre como isso funciona em Criar um cluster de usuário no Console do Google Cloud. Usar essa abordagem também significa que, como criador de clusters, você vai poder fazer login automaticamente no novo cluster no Console do Google Cloud com sua identidade do Google, embora precise configurar a autenticação para todos os outros usuários.

  1. No console do Google Cloud, acesse a página de clusters do GKE Enterprise.

    Acesse a página de clusters do GKE Enterprise

  2. Selecione o projeto do Google Cloud em que você quer criar o cluster. O projeto selecionado também será o 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.

  6. Verifique os pré-requisitos e clique em Continuar.

Noções básicas sobre clusters

  1. Insira um nome para o cluster de usuário.
  2. Em Cluster de administrador, selecione o cluster de administrador criado anteriormente na lista. 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 na lista suspensa de Noções básicas sobre clusters.

  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 os seguintes itens estão armazenados:

    • Os metadados do cluster de usuário de que a API GKE On-Prem precisa para gerenciar o ciclo de vida do cluster
    • Geração de registros, monitoramento e auditoria de dados para componentes do sistema.
  4. Selecione a versão do GKE no VMware para o cluster de usuário.

  5. 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. Para essa instalação simples, o cluster precisa de um endereço para três nós e um endereço IP adicional que possa ser usado para um nó temporário durante o upgrade do cluster de usuário.

  1. Na seção IPs de nó, especifique Estático como o Modo de IP do cluster.

  2. Usando os endereços que você planejou anteriormente para os nós do cluster de usuário, preencha as seguintes informações:

    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, o GKE no VMware usará 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. Deixe os valores padrão fornecidos na seção CIDRs de serviço e pod, a menos que você precise usar intervalos não padrão, conforme descrito em Evitar sobreposição.

  4. Especifique as seguintes informações na seção Configuração do host:

    1. Insira os endereços IP dos servidores DNS que seu cluster de usuário pode usar.
    2. Digite os endereços IP dos servidores NTP.
  5. Clique em Continuar para acessar a seção Balanceador de carga.

Balanceador de carga

Configure o MetalLB como o balanceador de carga.

  1. Em Tipo de balanceador de carga, selecione MetalLB.

  2. 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. 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. Ele precisa ser incluído no pool de endereços especificado na seção Pools de endereço.

  3. Na seção Pools de endereços, especifique um pool de endereços para o balanceador de carga, incluindo o VIP de entrada. Esses são os VIPs de serviço que você planejou anteriormente.

    1. Clique em + Adicionar intervalo de endereços IP.
    2. Insira um Nome para o pool de nós.
    3. Insira um intervalo de endereços IP em notação CIDR (como 192.0.2.0/26) ou notação de intervalo (como 192.0.2.64-192.0.2.72). 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 Automático.
    5. Quando terminar, clique em Concluído.
  4. Clique em Continuar.

Plano de controle

Use os valores padrão fornecidos nesta seção. Clique em Continuar.

Recursos

  1. Desmarque Ativar grupos de antiafinidade. Ao configurar a infraestrutura mínima, você criou apenas um host ESXi, portanto, não ative grupos antiafinidade.

  2. Clique em Continuar.

Pools de nós

Seu cluster precisa ter 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.

Verifique os valores padrão configurados para o pool de nós. Os valores padrão são suficientes para a infraestrutura mínima, mas é possível fazer ajustes conforme necessário.

Verificar e concluir

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

O login no cluster é feito automaticamente após a criação. Outros operadores precisam seguir as etapas em Como fazer login em um cluster no Console do Cloud para ter acesso ao cluster.

Se você encontrar um erro ao verificar as configurações, o Console do Google Cloud exibe uma mensagem de erro que deve ser clara o suficiente para que você corrija o problema de configuração e tente novamente criar o cluster.

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.

Crie o arquivo kubeconfig do cluster de usuário

Para acessar o cluster de usuário no data center da linha de comando, você precisa receber um arquivo kubeconfig do cluster de administrador. Depois que o console do Google Cloud indicar que o status do cluster de usuário está íntegro, execute o comando a seguir na estação de trabalho de administrador para salvar um novo arquivo kubeconfig localmente no cluster de usuário. 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, como no exemplo a seguir:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

Linha de comando

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.

Como especificar IPs estáticos no cluster de usuário

Para especificar os endereços IP estáticos que você planejou anteriormente para os nós do cluster de usuário, crie um arquivo de bloco de IP chamado user-cluster-ipblock.yaml. Você precisa de três endereços IP para os nós de cluster de usuário e de um endereço extra a ser usado temporariamente durante upgrades. Veja um exemplo de um arquivo de bloco de IP com quatro endereços:

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.55
      hostname: user-vm-1
    - ip: 172.16.20.56
      hostname: user-vm-2
    - ip: 172.16.20.57
      hostname: user-vm-3
    - ip: 172.16.20.58
      hostname: user-vm-4

Preencher o arquivo de configuração do cluster de usuário

Quando gkeadm criou a estação de trabalho do administrador, foi gerado um arquivo de configuração chamado user-cluster.yaml. Esse arquivo de configuração serve para criar o cluster de usuário. Alguns dos campos já estão preenchidos para você com valores padrão, valores gerados ou valores que você forneceu ao configurar a estação de trabalho do administrador, como detalhes do vCenter: não altere esses valores para essa instalação simples.

  1. Abra user-cluster.yaml para edição.

  2. Preencha os outros campos da seguinte maneira, usando as informações que você coletou anteriormente. Veja um arquivo de configuração de exemplo abaixo se você não souber como formatar campos ou consulte a referência do arquivo de configuração do cluster de usuário. Mantenha a página aberta em uma guia ou janela separada para fazer referência a ela ao preencher os valores dos campos.

Campo ou seção Instructions
name O nome que preferir para o cluster de usuário
network.hostConfig.dnsServers Endereços IP para servidores DNS que as VMs de cluster podem usar.
network.hostConfig.ntpServers Endereços IP para servidores de tempo que as VMs do cluster podem usar.
network.ipMode.type Defina esse campo como "static".
network.ipMode.ipBlockFilePath O caminho para user-cluster-ipblock.yaml.
network.serviceCIDR e network.podCIDR Só altere esses valores se você precisar usar intervalos não padrão, conforme descrito em Evitar sobreposição.
loadBalancer.vips.controlPlaneVIP O endereço IP virtual (VIP) que você escolheu para o servidor da API Kubernetes do cluster de usuário.
loadBalancer.vips.ingressVIP O endereço IP virtual que você escolheu para ser configurado no balanceador de carga para o proxy de entrada.
loadbalancer.kind Defina esse campo como "MetalLB".
loadbalancer.metalLB.addressPools Especifique um pool de endereços para o balanceador de carga. Esses são os VIPs de serviço que você planejou anteriormente. Forneça um name para o pool de endereços e o addresses escolhido. O pool de endereços precisa incluir o VIP de proxy de entrada.
nodePools Use os valores pré-preenchidos fornecidos para um único pool de nós, especificando o name escolhido. Defina enableLoadBalancer como true para o pool de nós. Isso é necessário para usar o MetalLB, porque ele é executado nos nós do cluster.
antiAffinityGroups Definir esse campo como "false"
gkeConnect.projectID Definir esse campo com o ID do seu projeto do projeto do Google.
gkeConnect.registerServiceAccountKeyPath Definir esse campo como a chave JSON da sua conta de serviço "connect-register".

Exemplo de arquivo de configuração do cluster de usuário

Veja um exemplo de um arquivo de configuração de cluster de usuário preenchido:

apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: "1.11.0-gke.543"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.0.0/20"
  podCIDR: "192.168.0.0/16"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.61"
    ingressVIP: "172.16.20.62"
  kind: "MetalLB"
  metalLB:
    addressPools:
    - name: "uc-address-pool"
      addresses:
      - "172.16.20.62-172.16.20.72"
nodePools:
- name: "uc-node-pool"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  enableLoadBalancer: true
antiAffinityGroups:
  enabled: false
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
autoRepair:
  enabled: true

Validar a configuração e criar o cluster

  1. 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
    
  2. 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.

A saída mostra os nós do cluster de usuário. Exemplo:

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

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.