Nas seções a seguir, descrevemos os problemas que podem ocorrer ao usar o GKE On-Prem e como resolvê-los.
Antes de começar
Verifique as seções a seguir antes de começar a resolver um problema.
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.
Comportamento de geração de registros padrão
Para gkectl
e gkeadm
, basta usar as configurações de
geração de registros padrão:
-
Por padrão, as entradas de registro são salvas da seguinte maneira:
-
Para
gkectl
, o arquivo de registros padrão é/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
e está vinculado ao arquivologs/gkectl-$(date).log
no diretório local em que você executagkectl
. -
Para
gkeadm
, o arquivo de registros padrão élogs/gkeadm-$(date).log
no diretório local em que você executagkeadm
.
-
Para
- Todas as entradas de registro são salvas no arquivo de registros, mesmo que não sejam
impressas no terminal (quando
--alsologtostderr
éfalse
). - O nível de detalhamento
-v5
(padrão) abrange todas as entradas de registro exigidas pela equipe de suporte. - O arquivo de registros também contém o comando executado e a mensagem de erro.
Recomendamos que você envie o arquivo de registros para a equipe de suporte quando precisar de ajuda.
Como especificar um local não padrão para o arquivo de registros
Se quiser especificar um local não padrão para o arquivo de registros gkectl
, use
a sinalização --log_file
. O arquivo de registro que você especificar não
será vinculado ao diretório local.
Se quiser especificar um local não padrão para o arquivo de registros gkeadm
, use
a sinalização --log_file
.
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:
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
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
Instalação
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]
Estação de trabalho do administrador
openssl
não pode validar o OVA da estação de trabalho de administrador
- Sintomas
Executar
openssl dgst
no arquivo OVA da estação de trabalho de administrador não retornaVerified OK
- Causas possíveis
Há um problema no arquivo OVA que impede a validação bem-sucedida.
- Resolução
Tente fazer o download e implantar o OVA da estação de trabalho de administrador novamente, conforme descrito em Fazer o download do OVA da estação de trabalho de administrador . Se o problema persistir, entre em contato com o Google para receber ajuda.
Conectar
Não é possível registrar um cluster de usuário
Se você encontrar problemas com o registro de clusters de usuário, entre em contato com o Google para receber ajuda.
O registro do cluster criado durante a versão Alfa foi cancelado
Consulte Como registrar um cluster de usuário na documentação do Connect.
Também é possível excluir e recriar o cluster.
Upgrades
Sobre a inatividade durante upgrades
Recurso | Descrição |
---|---|
Cluster de administrador | Quando um cluster de administrador fica inativo, os planos de controle do cluster de usuário e as cargas de trabalho em clusters de usuário continuam em execução, a menos que tenham sido afetados por uma falha que causou a inatividade. |
Plano de controle do cluster de usuário | Normalmente, não há inatividade perceptível nos planos de controle do cluster de usuário. No entanto, conexões de longa duração com o servidor da API Kubernetes podem falhar e precisam ser restabelecidas. Nesses casos, o autor da chamada da API precisa tentar novamente até estabelecer uma conexão. No pior dos casos, pode haver até um minuto de inatividade durante um upgrade. |
Nós do cluster de usuário | Se um upgrade exigir uma alteração nos nós do cluster de usuário, o GKE On-Prem recriará os nós de maneira contínua e reagendar os pods em execução nesses nós. É possível evitar o impacto nas suas cargas de trabalho configurando PodDisruptionBudgets e regras antiafinidade apropriados. |
Como redimensionar clusters de usuário
Falha no redimensionamento de um cluster de usuário
- Sintomas
Falha na operação de redimensionamento em um cluster de usuário.
- Causas possíveis
Vários fatores podem causar falhas nas operações de redimensionamento.
- Resolução
Se um redimensionamento falhar, siga estas etapas:
Verifique o status de MachineDeployment do cluster para ver se há eventos ou mensagens de erro:
kubectl describe machinedeployments [MACHINE_DEPLOYMENT_NAME]
Verifique se há erros nas máquinas recém-criadas:
kubectl describe machine [MACHINE_NAME]
Erro: "nenhum endereço pode ser alocado"
- Sintomas
Depois de redimensionar um cluster de usuário,
kubectl describe machine [MACHINE_NAME]
exibe o seguinte erro:Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Failed 9s (x13 over 56s) machineipam-controller ipam: no addresses can be allocated
- Causas possíveis
Não há endereços IP suficientes disponíveis para o cluster de usuário.
- Resolução
Aloque mais endereços IP para o cluster. Em seguida, exclua a máquina afetada:
kubectl delete machine [MACHINE_NAME]
Se o cluster estiver configurado corretamente, uma máquina de substituição será criada com um endereço IP.
Número suficiente de endereços IP alocados, mas a máquina não é registrada no cluster
- Sintomas
A rede tem endereços suficientes alocados, mas ainda assim a máquina não é registrada no cluster de usuário.
- Causas possíveis
Pode haver um conflito de IP. O IP pode ser usado por outra máquina ou pelo balanceador de carga.
- Resolução
Verifique se o endereço IP da máquina afetada não foi usado. Se houver um conflito, você precisará resolvê-lo no seu ambiente.
Diversos
Limite de sessão no provedor do vSphere do Terraform
O GKE On-Prem usa o provedor do vSphere do Terraform para abrir VMs no ambiente vSphere. O limite de sessões no provedor é de 1.000 sessões. A implementação atual não fecha as sessões ativas após o uso. Podem ocorrer erros 503 se você tiver muitas sessões em execução.
As sessões são fechadas automaticamente após 300 segundos.
- Sintomas
Se você tiver muitas sessões em execução, talvez você encontre o seguinte erro:
Error connecting to CIS REST endpoint: Login failed: body: {"type":"com.vmware.vapi.std.errors.service_unavailable","value": {"messages":[{"args":["1000","1000"],"default_message":"Sessions count is limited to 1000. Existing sessions are 1000.", "id":"com.vmware.vapi.endpoint.failedToLoginMaxSessionCountReached"}]}}, status: 503 Service Unavailable
- Causas possíveis
Há muitas sessões de provedor do Terraform em execução no seu ambiente.
- Resolução
No momento, isso está funcionando conforme o esperado. As sessões são fechadas automaticamente após 300 segundos. Para mais informações, consulte o problema nº 618 no GitHub.
Como usar um proxy para o Docker: oauth2: cannot fetch token
- Sintomas
Ao usar um proxy, você encontra o seguinte erro:
oauth2: cannot fetch token: Post https://oauth2.googleapis.com/token: proxyconnect tcp: tls: oversized record received with length 20527
- Causas possíveis
É possível que você tenha fornecido um proxy HTTPS em vez de HTTP.
- Resolução
Na configuração do Docker, altere o endereço do proxy para
http://
em vez dehttps://
.
Como verificar se as licenças são válidas
Lembre-se de verificar se as licenças são válidas, especialmente se você estiver usando licenças de teste. Pode haver falhas inesperadas se as licenças F5, host ESXi ou vCenter tiverem expirado.