Risolvere i problemi comuni

Questa pagina mostra come risolvere i problemi comuni di GKE su Azure.

Se hai bisogno di ulteriore aiuto, contatta l'assistenza clienti Google Cloud.

Messaggi di errore comuni

Le seguenti sezioni spiegano le cause e le soluzioni di alcuni messaggi di errore più comuni.

Il server non contiene una risorsa

Errori come error: the server doesn't have a resource type "services" possono verificarsi quando un cluster non ha pool di nodi in esecuzione o quando il gateway Connect non può connettersi a un pool di nodi. Per controllare lo stato dei pool di nodi, esegui questo comando:

gcloud container azure node-pools list \
    --cluster-name CLUSTER_NAME \
    --location LOCATION

Sostituisci quanto segue:

  • CLUSTER_NAME: nome del cluster
  • LOCATION: la località Google Cloud che gestisce il cluster

L'output include lo stato dei pool di nodi del cluster. Se non è elencato un pool di nodi, crea un pool di nodi.

Utente non consentito

Il seguente errore si verifica quando il tuo nome utente non dispone dell'accesso amministrativo al 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

Puoi configurare utenti aggiuntivi passando il flag --admin-users quando crei un cluster.

Se utilizzi il gateway Connect e non riesci a connetterti al cluster, prova a svolgere i seguenti passaggi:

  1. Recupera gli utenti autorizzati per il tuo cluster.

    gcloud container azure clusters describe CLUSTER_NAME \
        --format 'value(authorization.admin_users)'
    

    Sostituisci CLUSTER_NAME con il nome del cluster.

    L'output include i nomi utente con accesso amministrativo al cluster. Ad esempio:

    {'username': 'administrator@example.com'}
    
  2. Ottieni il nome utente attualmente autenticato con Google Cloud CLI.

    gcloud config get-value account
    

    L'output include l'account autenticato con Google Cloud CLI. Se l'output di gcloud containers azure clusters describe e gcloud config get-value account non corrisponde, esegui gcloud auth login e autentica come nome utente con accesso amministrativo al cluster.

Problemi con i comandi kubectl

Le seguenti sezioni forniscono indicazioni su come risolvere i problemi relativi ai comandi kubectl che non rispondono o non funzionano.

I comandi kubectl non rispondono più

Se il tuo cluster esegue una versione di Kubernetes precedente alla 1.25 e i comandi kubectl non rispondono o scadono, il motivo più comune è che non hai ancora creato un pool di nodi. Per impostazione predefinita, GKE su Azure genera file kubeconfig che utilizzano Connect Gateway come endpoint raggiungibile da internet. Affinché questo comando funzioni, il deployment gke-connect-agent deve essere in esecuzione in un pool di nodi nel cluster.

Per ulteriori informazioni diagnostiche, esegui questo comando:

kubectl cluster-info -v=9

Se non sono presenti pool di nodi in esecuzione, le richieste a connectgateway.googleapis.com non vanno a buon fine e viene restituito un errore 404 cannot find active connections for cluster.

Per i cluster con una versione di Kubernetes 1.25 o successiva, gke-connect-agent viene eseguito sul piano di controllo e non è richiesto un pool di nodi. Se il comando kubectl non risponde, controlla i log dei componenti del piano di controllo con Cloud Logging.

I comandi kubectl exec,attach e port-forward hanno esito negativo

È possibile che i comandi kubectl exec, kubectl attach e kubectl port-forward non vadano a buon fine con il messaggio error: unable to upgrade connection quando utilizzi Connetti il gateway. Questa è una limitazione quando si utilizza Connetti a gateway come endpoint del server API Kubernetes.

Per risolvere il problema, utilizza un kubeconfig che specifichi l'endpoint privato del cluster. Per istruzioni su come accedere al cluster tramite il suo endpoint privato, consulta Configurare l'accesso al cluster per kubectl.

Risoluzione dei problemi generici di kubectl

Se utilizzi Connect gateway:

  • Assicurati di aver abilitato Connect Gateway nel tuo progetto Google Cloud:

    gcloud services enable connectgateway.googleapis.com
    
  • Per i cluster con una versione di Kubernetes precedente alla 1.25, assicurati di avere almeno un pool di nodi Linux in esecuzione e che gke-connect-agent sia in esecuzione. Per maggiori dettagli, consulta Risolvere i problemi di connessione ai cluster.

  • Per i cluster con Kubernetes versione 1.25 o successiva, controlla i log gke-connect-agent con Cloud Logging.

Passaggi successivi