Como criar um cluster de usuário

Nesta página, você aprende a criar um cluster de usuário.

Como gerar um arquivo de configuração

Para criar um cluster de usuário, você precisa de um arquivo de configuração de cluster de usuário. Se você usou gkeadm para criar a estação de trabalho do administrador, gkeadm gerou um modelo para o arquivo de configuração e preencheu alguns dos campos.

Se você não usou gkeadm para criar a estação de trabalho de administrador, gere um modelo executando este comando:

gkectl create-config cluster --config [OUTPUT_PATH]

[OUTPUT_PATH] é um caminho de sua escolha para o modelo gerado. Se você não incluir a sinalização --config, gkectl nomeia o arquivo user-cluster.yaml e coloca-o no diretório atual.

Como preencher o arquivo de configuração

name

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

gkeOnPremVersion

Defina o campo gkeOnPremVersion.

vCenter

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

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

Se você quiser modificar qualquer um dos valores vCenter globais, preencha os campos relevantes na seção vCenter do arquivo de configuração do cluster de usuário.

network

Defina network.ipMode.type com o mesmo valor definido no arquivo de configuração do cluster de administrador: "dhcp" ou "static".

Se você definir ipMode.type como "static", crie um arquivo de configuração do host que forneça os endereços IP estáticos para os nós em seu cluster de usuário. Em seguida, defina network.ipBlockFilePath como o caminho do arquivo de configuração do host.

Forneça valores para os campos restantes na seção network.

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.controlPlaneVIP e loadBalancer.ingressVIP.

Defina loadBalancer.kind com o mesmo valor definido no arquivo de configuração do cluster de administrador: "ManualLB", "F5BigIP" ou "Seesaw". Em seguida, preencha a seção correspondente: manualLB, f5BigIP ou seesaw.

proxy

Se a rede que terá os nós do cluster de usuários estará atrás de um servidor proxy, preencha a seção proxy.

masterNode

Preencha a seção masterNode.

nodePools

Preencha a seção nodePools.

authentication

Se você quiser usar OpenID Connect (OIDC) para autenticar usuários, preencha a seção authentication.oidc.

Se você quiser fornecer um certificado de veiculação adicional para o servidor vCenter do cluster de usuários, preencha a seção authentication.sni.

stackdriver

Preencha a seção stackdriver.

gkeConnect

Preencha a seção gkeConnect.

cloudRun

Defina cloudRun.enabled como true ou false.

Como validar seu 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 [CONFIG_PATH]

em que:

  • [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig para o cluster de administrador;

  • [CONFIG_PATH] é 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.

Como criar o cluster de usuário

Crie o cluster de usuário:

gkectl create cluster --config [CONFIG_PATH] --skip-validation-all

em que [CONFIG_PATH] é o caminho do arquivo de configuração do cluster do 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.

Como 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]

em que [USER_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig.

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

Solução de problemas

Como diagnosticar problemas de cluster usando gkectl

Use os comandos gkectl diagnose para identificar problemas de cluster e compartilhar informações do cluster com o Google. Consulte Como diagnosticar problemas de cluster.

Como executar comandos gkectl de maneira detalhada

-v5

Como registrar erros gkectl em stderr

--alsologtostderr

Como localizar registros gkectl na estação de trabalho do administrador

Mesmo que você não transmita as sinalizações de depuração, é possível visualizar os registros gkectl no seguinte diretório da estação de trabalho do administrador:

/home/ubuntu/.config/gke-on-prem/logs

Como localizar registros da API Cluster no cluster de administrador

Se uma VM não for iniciada após o início do plano de controle do administrador, tente depurar isso inspecionando os registros dos controladores da API Cluster no cluster de administrador:

  1. Encontre o nome do pod de controladores da API Cluster no namespace kube-system, em que [ADMIN_CLUSTER_KUBECONFIG] é o caminho para o arquivo kubeconfig do cluster de administrador:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. Abra os registros do pod, em que [POD_NAME] é o nome do pod. Opcionalmente, use grep ou uma ferramenta semelhante para pesquisar erros:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager

Como depurar problemas de F5 BIG-IP com o kubeconfig do nó do plano de controle do cluster de administrador

Após uma instalação, o GKE On-Prem gera um arquivo kubeconfig no diretório inicial da estação de trabalho do administrador denominado internal-cluster-kubeconfig-debug. Esse arquivo kubeconfig é idêntico ao kubeconfig do cluster de administrador, com a diferença de que ele aponta diretamente para o nó do plano de controle do cluster de administrador, em que o plano de controle de administrador é executado. É possível usar o arquivo internal-cluster-kubeconfig-debug para depurar problemas de F5 BIG-IP.

Falha na validação de gkectl check-config: não é possível encontrar partições de F5 BIG-IP

Sintomas

A validação falha porque não são encontradas partições de F5 BIG-IP, embora elas existam.

Causas possíveis

Um problema com a API F5 BIG-IP pode causar falha na validação.

Resolução

Tente executar gkectl check-config novamente.

Falha em gkectl prepare --validate-attestations: não foi possível validar o atestado de versão

Sintomas

Executar gkectl prepare com a sinalização --validate-attestations opcional retorna o seguinte erro:

could not validate build attestation for gcr.io/gke-on-prem-release/.../...: VIOLATES_POLICY
Causas possíveis

Um atestado pode não existir para as imagens afetadas.

Resolução

Tente fazer o download e implantar o OVA da estação de trabalho de administrador novamente, conforme instruído em Como criar uma estação de trabalho de administrador. Se o problema persistir, entre em contato com o Google para receber ajuda.

Como depurar usando os registros do cluster de inicialização

Durante a instalação, o GKE On-Prem cria um cluster temporário de inicialização. Após uma instalação bem-sucedida, o GKE On-Prem exclui o cluster de inicialização, deixando você com o cluster de administrador e de usuário. Geralmente, não há motivo para interagir com esse cluster.

Se algo der errado durante uma instalação e você tiver transmitido --cleanup-external-cluster=false para gkectl create cluster, talvez seja útil realizar a depuração usando os registros do cluster de inicialização. Encontre o pod e acesse os registros dele:

kubectl --kubeconfig /home/ubuntu/.kube/kind-config-gkectl get pods -n kube-system
kubectl --kubeconfig /home/ubuntu/.kube/kind-config-gkectl -n kube-system get logs [POD_NAME]

Para mais informações, consulte Solução de problemas.