Criar um cluster de usuário

Este documento mostra como criar um cluster de usuário para clusters do Anthos no VMware (GKE On-Prem). O cluster do usuário é um lugar em que é possível executar suas cargas de trabalho. Cada cluster de usuário está associado a um cluster de administrador.

Para mais detalhes sobre clusters de administrador e clusters de usuário, consulte a visão geral da instalação.

Visão geral do procedimento

Estas são as principais etapas envolvidas na criação de um cluster de usuários:

  1. Conectar-se à estação de trabalho do administrador
    A estação de trabalho de administrador é uma VM que tem as ferramentas necessárias para criar um cluster de usuário.
  2. Preencher os arquivos de configuração
    Para especificar os detalhes do novo cluster, preencha um arquivo de configuração de cluster de usuário, um arquivo de configuração de credenciais e possivelmente um arquivo de bloco de IP.
  3. (Opcional) Criar um balanceador de carga Seesaw
    Se você optou por usar o balanceador de carga Seesaw, execute gkectl create loadbalancer.
  4. Criar um cluster de usuário
    Execute gkectl create cluster para criar um cluster conforme especificado no arquivo de configuração.
  5. Verificar se o cluster de usuário está em execução
    Use o kubectl para ver os nós do cluster.

No final deste procedimento, você terá um cluster de usuários em execução para implantar as cargas de trabalho.

Antes de começar

  • Verifique se você criou uma estação de trabalho de administrador e um cluster de administrador.

  • Consulte o documento de planejamento de endereços IP. Verifique se você tem endereços IP suficientes disponíveis e reveja sua decisão sobre como quer que os nós do cluster recebam os endereços IP: DHCP ou estático. Se você decidir usar endereços IP estáticos, preencha um arquivo de blocos de IP que contenha os endereços escolhidos.

  • Consulte a visão geral do balanceamento de carga e reveja sua decisão sobre o tipo de balanceador de carga que você quer usar. Para determinados balanceadores de carga, você precisa configurá-los antes de criar o cluster de usuário.

  • Olhe para a seção vcenter. Considere se você quer usar clusters do vSphere separados para os clusters de administrador e de usuário e se quer usar data centers separados.

  • Consulte a seção nodePools. Pense em quantos pools de nós você precisa e em qual sistema operacional você quer executar em cada um deles.

1. Conectar-se à estação de trabalho do administrador

Consiga uma conexão SSH para a estação de trabalho do administrador

Lembre-se de que gkeadm ativou a conta de serviço de acesso a componentes na estação de trabalho de administrador.

Siga as etapas restantes neste tópico na estação de trabalho de administrador no diretório inicial.

2. Preencher o arquivo de configuração

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.

Para se familiarizar com o arquivo de configuração, leia o documento arquivo de configuração do cluster de usuário. É recomendável manter esse documento aberto em uma guia ou janela separada para fazer referência a ele ao concluir as etapas a seguir.

name

Defina o campo name como um nome de sua escolha para o cluster de usuário.

gkeOnPremVersion

Este campo já foi preenchido para você. Ele especifica a versão dos clusters do Anthos no VMware. Por exemplo, 1.11.0-gke.543.

vCenter

Os valores definidos na seção vCenter do arquivo de configuração do cluster de administrador são globais. Ou seja, elas se aplicam ao cluster de administrador e aos clusters de usuário associados.

Para cada cluster de usuário criado, você tem a opção de modificar alguns dos valores globais de vCenter.

Para substituir qualquer um dos valores vCenter globais, preencha os campos relevantes na seção vCenter do seu arquivo de configuração do cluster de usuário.

Talvez você queira usar clusters do vSphere separados para o cluster de administrador e os clusters de usuário. Em vez disso, use data centers separados para o cluster de administrador e os clusters de usuário.

Usar um data center e um cluster do vSphere

A opção padrão é usar um data center e um cluster do vSphere para o cluster de administrador e quaisquer clusters de usuário. Os valores no arquivo de configuração do cluster de administrador também são usados no cluster de usuário. Não defina valores vCenter no arquivo de configuração do cluster de usuário.

Criar um cluster de usuário em um cluster separado do vSphere

Se você quiser criar um cluster de usuário que esteja no próprio cluster do vSphere, especifique um valor para vCenter.cluster no arquivo de configuração do cluster de usuário.

Se o cluster de administrador e o cluster de usuário estiverem em clusters separados do vSphere, eles podem estar no mesmo data center ou em data centers diferentes.

Criar um cluster de usuários com um data center separado

Os clusters de usuário e de administrador podem estar em diferentes data centers. Nesse caso, eles também estão em clusters separados do vSphere.

Se você especificar vCenter.datacenter no arquivo de configuração do cluster de usuário, também precisará especificar vCenter.datastore e vCenter.networkName. Além disso, será necessário especificar vCenter.cluster ou vCenter.resourcePool.

Para usar data centers diferentes para o cluster de administrador e o cluster de usuário, recomendamos a criação de umrepositório de dados para cada plano de controle do cluster de usuário no data center do cluster de administrador, para que os planos de controle do cluster de administrador e os planos de controle do cluster de usuário tenham domínios de falha de repositório de dados isolados. Embora seja possível usar o armazenamento de dados de cluster do administrador para nós do plano de controle do cluster do usuário, isso coloca os nós do plano de controle do cluster do usuário e o cluster de administrador no mesmo domínio de falha do armazenamento de dados.

Conta diferente do vCenter para um cluster de usuário no próprio data center

Um cluster de usuário pode usar uma conta do vCenter diferente, com vCenter.credentials diferentes, do cluster de administrador. A conta do vCenter do cluster de administrador precisa acessar o data center do cluster de administrador, enquanto a conta do vCenter do cluster de usuário só precisa de acesso ao data center do cluster de usuário.

network

Decida como você quer que os nós de cluster recebam os endereços IP deles. As opções são:

  • De um servidor DHCP configurado com antecedência. Defina network.ipMode.type como "dhcp".

  • A partir de uma lista de endereços IP estáticos fornecidos. Defina network.ipMode.type como "static" e crie um arquivo de bloco de IPs que forneça os endereços IP estáticos. Para ver um exemplo de arquivo de bloco de IP, consulte Exemplo de arquivos de configuração preenchidos.

Preencha o restante dos campos na seção network conforme necessário:

  • Se você decidiu usar endereços IP estáticos para os nós do cluster de usuário, o campo network.ipMode.ipBlockFilePath e a seção network.hostconfig são obrigatórios. A seção network.hostconfig contém informações sobre os servidores NTP, servidores DNS e domínios de pesquisa DNS usados pelos nós do cluster.

    Se você estiver usando o balanceador de carga Seesaw, a seção network.hostconfig será necessária mesmo que você pretenda usar o DHCP para os nós do cluster.

  • O network.podCIDR e o network.serviceCIDR têm valores pré-preenchidos que não podem ser alterados, a menos que entrem em conflito com endereços que já estão em uso na sua rede. O Kubernetes usa esses intervalos para atribuir endereços IP a pods e serviços no cluster.

Independentemente de você depender de um servidor DHCP ou especificar uma lista de endereços IP estáticos, é necessário ter endereços IP suficientes disponíveis para o cluster de usuário. Isso inclui os nós no cluster de usuário e os nós no cluster de administrador que executam o plano de controle do cluster de usuário. Para uma explicação de quantos endereços IP você precisa, consulte Planejar seus endereços IP.

Regras de firewall para um cluster de usuário com um valor network.vCenter.networkName separado

Nos respectivos arquivos de configuração, o cluster de administrador e o de usuário podem usar valores network.vCenter.networkName separados que representam VLANs e data centers diferentes. No entanto, a comunicação entre VLANs a seguir precisa ser permitida.

  • Os nós de usuários podem acessar as portas 443 e 8132 no endereço VIP do plano de controle do cluster de usuário e receber pacotes de retorno deles.

loadBalancer

Reserve um VIP para o servidor da API Kubernetes do seu cluster de usuários. Reserve outro VIP para o serviço de entrada do seu cluster de usuários. Forneça seus VIPs como valores para loadBalancer.vips.controlPlaneVIP e loadBalancer.vips.ingressVIP.

Para mais informações, consulte VIPs na sub-rede do cluster de usuário e VIPs na sub-rede do cluster de administrador.

Decida qual tipo de balanceamento de carga você quer usar. As opções são:

Para mais informações, consulte Visão geral do balanceamento de carga.

enableDataplaneV2

Decida se você quer ativar o Dataplane V2 para o cluster de usuário e defina enableDataplaneV2 conforme necessário.

enableWindowsDataplaneV2

Se você planeja ter um Pool de nós do Windows, decida se quer ativar o Windows Dataplane V2 e defina enableWindowsDataplaneV2 conforme necessário.

advancedNetworking

Se você planeja criar um gateway NAT de saída, defina advancedNetworking como true.

multipleNetworkInterfaces

Decida se quer configurar várias interfaces de rede para pods e defina multipleNetworkInterfaces conforme necessário.

storage

Se você quiser desativar a implantação de componentes do CSI do vSphere, defina storage.vSphereCSIDisabled como true.

masterNode

O plano de controle do cluster de usuário é executado nos nós do cluster de administrador.

Na seção masterNode, é possível especificar quantos nós do plano de controle você quer para o cluster de usuário. Também é possível especificar um repositório de dados para os nós do plano de controle e se você quer ativar o redimensionamento automático dos nós.

nodePools

Um pool de nós é um grupo de nós em um cluster, que têm a mesma configuração. Por exemplo, os nós em um pool podem executar o Windows e os nós em outro pool podem executar o Linux.

Preencha a seção nodePools para especificar pelo menos um pool de nós.

Para mais informações, consulte Pools de nós e Como criar e gerenciar pools de nós.

antiAffinityGroups

Defina antiAffinityGroups.enabled como true ou false.

Este campo especifica se os clusters do Anthos no VMware criam regras de antiafinidade do Programador distribuído para recursos (DRS, na sigla em inglês) para os nós do cluster de usuário, fazendo com que eles sejam espalhados por pelo menos três hosts físicos no seu data center.

stackdriver

Se você quiser ativar o Cloud Logging e o Cloud Monitoring para o cluster, preencha a seção stackdriver.

Esta seção é obrigatória por padrão. Ou seja, se você não preencher essa seção, inclua a sinalização --skip-validation-stackdriver ao executar gkectl create cluster.

gkeConnect

Seu cluster de usuário precisa ser registrado em uma frota do Google Cloud.

Preencha a seção gkeConnect para especificar um projeto host de frota e uma conta de serviço associada.

usageMetering

Se você quiser ativar a medição de uso do cluster, preencha a seção usageMetering.

cloudAuditLogging

Se você quiser integrar os registros de auditoria do servidor da API Kubernetes do cluster com os registros de auditoria do Cloud, preencha a seção cloudAuditLogging.

Exemplo de arquivos de configuração preenchidos

Veja um exemplo de um arquivo de bloco de IP preenchido e um de configuração do cluster de usuário. A configuração ativa alguns, mas não todos, os recursos disponíveis.

vc-01-ipblock-user.yaml

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.21
      hostname: user-host1
    - ip: 172.16.20.22
      hostname: user-host2
    - ip: 172.16.20.23
      hostname: user-host3
    - ip: 172.16.20.24
      hostname: user-host4
    - ip: 172.16.20.25
      hostname: user-host5
    - ip: 172.16.20.26
      hostname: user-host6

vc-01-user-cluster.yaml

apiVersion: v1
kind: UserCluster
name: "gke-user-01"
gkeOnPremVersion: 1.11.0-gke.543
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: dhcp
    ipBlockFilePath: "vc-01-ipblock-user.yaml"
  serviceCIDR: 10.96.0.0/20
  podCIDR: 192.168.0.0/16
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.32"
    ingressVIP: "172.16.21.30"
  kind: "MetalLB"
   metalLB:
    addressPools:
    - name: "gke-address-pool-01"
      addresses:
      - "172.16.21.30 - 172.16.21.39"
enableDataplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 1
nodePools:
- name: "gke-node-pool-01"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: "ubuntu_containerd"
antiAffinityGroups:
  enabled: true
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"
autoRepair:
  enabled: true

Validar o arquivo de configuração

Depois de preencher o arquivo de configuração do cluster de usuário, execute gkectl check-config para verificar se o arquivo é válido:

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Substitua:

  • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig para o cluster de administrador.

  • USER_CLUSTER_CONFIG: o caminho do arquivo de configuração do cluster de usuário.

Se o comando retornar mensagens, corrija os problemas e valide o arquivo novamente.

Se quiser pular as validações mais demoradas, transmita a sinalização --fast. Para pular validações individuais, use as sinalizações --skip-validation-xxx. Para saber mais sobre o comando check-config, consulte Como executar verificações de simulação.

3. (Opcional) Criar um balanceador de carga Seesaw para o cluster de usuário

Se você escolheu usar o balanceador de carga Seesaw em pacote, siga as etapas nesta seção. Caso contrário, pule esta seção.

Crie e configure a VM para o balanceador de carga do Seesaw:

gkectl create loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

4. Criar um cluster de usuário

Crie um cluster de usuário:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

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.

Se preferir, é possível alterar o nome e o local do arquivo kubeconfig.

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

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

Solução de problemas

Consulte Solução de problemas na criação e no upgrade de clusters.

A seguir