Résoudre les problèmes courants
Cette page explique comment résoudre les problèmes courants liés à GKE sur Azure.
Si vous avez besoin d'aide supplémentaire, contactez l'assistance Cloud Customer Care.Messages d'erreur fréquents
Les sections suivantes décrivent les causes et les solutions de messages d'erreur.
Le serveur ne dispose d'aucune ressource
Des erreurs de type error: the server doesn't have a resource type "services"
peuvent se produire lorsqu'un cluster ne contient pas de pool de nœuds en cours d'exécution ou lorsqu'une passerelle Connect ne peut pas se connecter à un pool de nœuds. Pour vérifier l'état de vos pools de nœuds, exécutez la commande suivante :
gcloud container azure node-pools list \
--cluster-name CLUSTER_NAME \
--location LOCATION
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster.LOCATION
: zone Google Cloud qui gère votre cluster
Le résultat inclut l'état des pools de nœuds de votre cluster. Si aucun pool de nœuds n'est répertorié, créez un pool de nœuds.
Utilisateur interdit
L'erreur suivante se produit lorsque votre nom d'utilisateur ne dispose pas d'un accès administrateur à votre 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
Vous pouvez configurer des utilisateurs supplémentaires en transmettant l'option --admin-users
lorsque vous créez un cluster.
Si vous utilisez la passerelle Connect et que vous ne pouvez pas vous connecter à votre cluster, procédez comme suit :
Identifiez les utilisateurs autorisés dans votre cluster.
gcloud container azure clusters describe CLUSTER_NAME \ --format 'value(authorization.admin_users)'
Remplacez
CLUSTER_NAME
par le nom de votre cluster.Le résultat inclut les noms d'utilisateur disposant d'un accès administrateur au cluster. Exemple :
{'username': 'administrator@example.com'}
Obtenez le nom d'utilisateur actuellement authentifié avec la CLI Google Cloud.
gcloud config get-value account
Le résultat inclut le compte authentifié avec la CLI Google Cloud. Si les résultats de
gcloud containers azure clusters describe
etgcloud config get-value account
ne correspondent pas, exécutez la commandegcloud auth login
et authentifiez-vous avec le nom d'utilisateur disposant d'un accès administrateur au cluster.
Problèmes liés aux commandes kubectl
Les sections suivantes expliquent comment résoudre les problèmes liés aux commandes kubectl
qui ne répondent pas ou qui échouent.
Les commandes kubectl cessent de répondre
Si votre cluster exécute une version de Kubernetes antérieure à 1.25 et que les commandes kubectl
ne répondent pas ou expirent, la cause la plus courante est que vous n'avez pas encore créé de pool de nœuds. Par défaut, GKE sur Azure génère des fichiers kubeconfig
qui utilisent la passerelle Connect comme point de terminaison accessible via Internet.
Pour que cela fonctionne, le déploiement gke-connect-agent
doit être exécuté dans un pool de nœuds sur le cluster.
Pour obtenir plus d'informations de diagnostic, exécutez la commande suivante :
kubectl cluster-info -v=9
Si aucun pool de nœuds n'est en cours d'exécution, les requêtes envoyées à connectgateway.googleapis.com
échouent avec une erreur 404 cannot find active connections for cluster
.
Pour les clusters exécutant Kubernetes 1.25 ou une version ultérieure, le gke-connect-agent
s'exécute sur le plan de contrôle et aucun pool de nœuds n'est requis. Si la commande kubectl
ne répond pas, vérifiez les journaux du composant du plan de contrôle avec Cloud Logging.
Échec des commandes kubectl exec, attach et port-forward
Les commandes kubectl exec
, kubectl attach
et kubectl port-forward
peuvent échouer avec le message error: unable to upgrade connection
lors de l'utilisation de la passerelle Connect. Il s'agit d'une limitation lorsque vous utilisez la passerelle Connect comme point de terminaison du serveur d'API Kubernetes.
Pour contourner ce problème, utilisez une commande kubeconfig
qui spécifie le point de terminaison privé du cluster. Pour obtenir des instructions sur l'accès au cluster via son point de terminaison privé, consultez la page Configurer l'accès au cluster pour kubectl.
Résoudre les problèmes génériques liés à kubectl
Si vous utilisez la passerelle Connect, procédez comme suit :
Assurez-vous d'avoir activé la passerelle Connect dans votre projet Google Cloud :
gcloud services enable connectgateway.googleapis.com
Pour les clusters dont la version de Kubernetes est antérieure à la version 1.25, assurez-vous qu'au moins un pool de nœuds Linux est en cours d'exécution et que
gke-connect-agent
est en cours d'exécution. Pour en savoir plus, consultez Résoudre les problèmes de connexion au cluster.Pour les clusters exécutant Kubernetes 1.25 ou une version ultérieure, consultez les journaux
gke-connect-agent
à l'aide de Cloud Logging.
Étapes suivantes
- Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.