Resolva problemas comuns
Esta página mostra-lhe como resolver problemas comuns com o GKE no Azure.
Se precisar de assistência adicional, contacte o apoio ao cliente do Google Cloud.Mensagens de erro comuns
As secções seguintes explicam as causas e as resoluções de algumas mensagens de erro comuns.
O servidor não tem um recurso
Podem ocorrer erros, como error: the server doesn't have a resource type "services"
, quando um cluster não tem pools de nós em execução ou o gateway Connect não consegue estabelecer ligação a um pool de nós. Para verificar o estado dos seus pools de nós, execute o seguinte comando:
gcloud container azure node-pools list \
--cluster-name CLUSTER_NAME \
--location LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do clusterLOCATION
: a localização que gere o seu cluster Google Cloud
O resultado inclui o estado dos conjuntos de nós do cluster. Se não tiver um node pool listado, crie um node pool.
Utilizador proibido
O seguinte erro ocorre quando o seu nome de utilizador não tem acesso de administrador ao cluster:
Error from server (Forbidden): users "administrator@example.com" is forbidden:
User "system:serviceaccount:gke-connect:connect-agent-sa" cannot impersonate
resource "users" in API group "" at the cluster scope
Pode configurar utilizadores adicionais transmitindo a flag --admin-users
quando cria um cluster.
Se usar o gateway Connect e não conseguir estabelecer ligação ao cluster, experimente os seguintes passos:
Obtenha os utilizadores autorizados para o seu cluster.
gcloud container azure clusters describe CLUSTER_NAME \ --format 'value(authorization.admin_users)'
Substitua
CLUSTER_NAME
pelo nome do cluster.O resultado inclui os nomes de utilizador com acesso de administrador ao cluster. Por exemplo:
{'username': 'administrator@example.com'}
Obtenha o nome de utilizador atualmente autenticado com a CLI do Google Cloud.
gcloud config get-value account
O resultado inclui a conta autenticada com a CLI Google Cloud. Se o resultado de
gcloud containers azure clusters describe
egcloud config get-value account
não corresponder, executegcloud auth login
e autentique-se como o nome de utilizador com acesso administrativo ao cluster.
Problemas com comandos kubectl
As secções seguintes fornecem orientações sobre como resolver problemas com comandos kubectl
que não respondem ou falham.
Os comandos kubectl deixam de responder
Se o cluster executar uma versão do Kubernetes anterior à 1.25 e os kubectl
comandos não responderem ou excederem o tempo limite, o motivo mais comum é que ainda não criou um conjunto de nós. Por predefinição, o GKE no Azure gera ficheiros kubeconfig
que usam o gateway do Connect como um ponto final acessível através da Internet.
Para que isto funcione, a implementação gke-connect-agent
tem de estar a ser executada num conjunto de nós no cluster.
Para mais informações de diagnóstico, execute o seguinte comando:
kubectl cluster-info -v=9
Se não existirem pools de nós em execução, vê pedidos para
connectgateway.googleapis.com
falharem com um erro 404
cannot find active connections for cluster
.
Para clusters com uma versão do Kubernetes 1.25 ou posterior, o gke-connect-agent
é executado no plano de controlo e não é necessário um conjunto de nós. Se o comando kubectl
não responder, verifique os registos dos componentes do plano de controlo com o Cloud Logging.
Os comandos kubectl exec, attach e port-forward falham
Os comandos kubectl exec
, kubectl attach
e kubectl port-forward
podem falhar com a mensagem error: unable to upgrade connection
quando usar o gateway Connect. Esta é uma limitação quando usa o gateway Connect como o ponto final do servidor da API Kubernetes.
Para contornar esta situação, use um kubeconfig
que especifique o ponto final privado do cluster. Para obter instruções sobre como aceder ao cluster através do respetivo ponto final privado, consulte o artigo Configure o acesso ao cluster para o kubectl.
Resolução de problemas genérica do kubectl
Se usar o gateway do Connect:
Certifique-se de que ativou o gateway Connect no seu Google Cloud projeto:
gcloud services enable connectgateway.googleapis.com
Para clusters com uma versão do Kubernetes anterior à 1.25, certifique-se de que tem, pelo menos, um pool de nós do Linux em execução e que o
gke-connect-agent
está em execução. Para obter detalhes, consulte o artigo Resolva problemas de ligações de clusters.Para clusters com uma versão do Kubernetes 1.25 ou posterior, verifique os
gke-connect-agent
registos com o Cloud Logging.
O que se segue?
- Se precisar de assistência adicional, contacte o apoio ao cliente do Google Cloud.