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:
- 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.
- 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.
- (Opcional) Criar um balanceador de carga Seesaw
- Se você optou por usar o balanceador de carga Seesaw, execute
gkectl create loadbalancer
.
- Criar um cluster de usuário
- Execute
gkectl create cluster
para criar um cluster conforme especificado no arquivo de configuração.
- 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. A opção de ter clusters do vSphere separados está em pré-lançamento para a versão 1.12.0 e para a versão 1.12.1.
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
Esse recurso está em pré-lançamento para a versão 1.12.0 e está em disponibilidade geral para a versão 1.12.1.
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çãonetwork.hostconfig
são obrigatórios. A seçãonetwork.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:
Balanceamento de carga em pacote MetalLB. Defina
loadBalancer.kind
como"MetalLB"
. Preencha também a seçãoloadBalancer.metalLB.addressPools
e definaenableLoadBalancer
comotrue
para pelo menos um dos pools de nós. Para mais informações, consulte Balanceamento de carga em pacote com o MetalLB.Segue o balanceamento de carga em pacote. Defina
loadBalancer.kind
como"Seesaw"
e preencha a seçãoloadBalancer.seesaw
. Para mais informações, consulte Balanceamento de carga em pacote com o Seesaw.Balanceamento de carga integrado com a F5 BIG-IP. Defina
loadBalancer.kind
como"F5BigIP"
e preencha a seçãof5BigIP
. Para mais informações, consulte Balanceamento de carga com F5 BIG-IP.Balanceamento de carga manual. Defina
loadBalancer.kind
como"ManualLB"
e preencha a seçãomanualLB
. Para mais informações, consulte Balanceamento de carga manual.
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
.
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.