Résoudre les problèmes de configuration au niveau du parc

Ce document fournit des instructions de dépannage pour la configuration de GKE Identity Service au niveau du parc.

Résoudre les problèmes de configuration au niveau du parc

Pour résoudre les problèmes pouvant survenir lors de la configuration de votre parc, procédez comme suit:

1. Valider si GKE Identity Service est activé

Pour vérifier si GKE Identity Service est activé pour votre projet, exécutez la commande suivante:

$ gcloud container fleet identity-service describe

Si vous ne voyez aucune erreur, cela signifie que GKE Identity Service est activé et vous pouvez passer à l'instruction suivante.

Erreur:Identity Service Feature for project <your-project-id> is not enabled

Si cette erreur s'affiche, cela signifie que GKE Identity Service n'a pas été activé correctement pour votre parc lors de la configuration de la fonctionnalité.

Solution:Pour vous assurer que la fonctionnalité est activée pour votre projet, consultez les instructions de la section Configurer des clusters pour GKE Identity Service.

2. Afficher l'état du service d'identité GKE

Pour afficher l'état actuel de GKE Identity Service, exécutez la commande suivante:

$ gcloud container fleet identity-service describe

Le résultat de cette commande comporte les deux sections suivantes:

  • membershipSpecs contient la configuration du fournisseur d'identité que vous avez spécifiée pour chaque cluster enregistré dans le parc. GKE Identity Service est configuré sur chaque cluster à l'aide de ces configurations.

  • membershipStates affiche l'état actuel de GKE Identity Service dans chaque cluster, y compris la configuration pertinente du fournisseur d'identité et les erreurs qui ont pu se produire lors de la configuration.

Pour résoudre les problèmes sur un cluster, sous membershipStates, recherchez le cluster et recherchez les champs suivants:

  • Champ state: membershipStates -> <cluster-identifier> -> identityservice -> state
  • Champ failureReason: membershipStates -> <cluster-identifier> -> identityservice -> failureReason.

Exemple

Si vous disposez de deux clusters helloworld et foobar enregistrés dans le parc, la sortie présente la structure suivante:

Identity Service Feature:
  createTime: '222-11-10T23:05:6.146566392Z'
  membershipSpecs:
    projects/<your-project-number>/locations/<location>/memberships/helloworld:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields
    projects/<your-project-number>/locations/<location>/memberships/foobar:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields
  membershipStates:
    projects/<your-project-number>/location/<location>/memberships/helloworld:
      identityservice:
        failureReason: AIS feature does not support this cluster type
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: ERROR
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'
    projects/<your-project-number>/location/<location>/memberships/foobar:
      identityservice:
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: OK
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'

  name: projects/<project-number>/locations/global/features/identityservice
  updateTime: '2022-11-11T20:40:31.859321901Z'

3. Vérifier l'état du cluster

Pour vérifier l'état de GKE Identity Service dans un cluster, vérifiez les points suivants:

  • La valeur state est OK: cela indique qu'aucune erreur ne s'est produite lors de la configuration de GKE Identity Service sur le cluster avec la configuration spécifiée sous membershipSpecs.

    Si la configuration du cluster que vous dépannez (par exemple, helloworld) est différente dans membershipSpecs et membershipStates, vous avez probablement mis à jour la configuration du cluster. Attendez quelques minutes que GKE Identity Service propage les modifications au cluster, puis vérifiez l'état à nouveau.

    Si la configuration du cluster que vous dépannez (par exemple, helloworld) est identique dans membershipSpecs et membershipStates, cela signifie que GKE Identity Service a été configuré correctement.

  • Le champ state est ERROR: cela indique que des erreurs se sont produites lors de la configuration de GKE Identity Service sur le cluster avec la configuration spécifiée sous membershipSpecs.

    Pour résoudre le problème, consultez Résoudre les problèmes courants. Après avoir suivi les étapes de dépannage nécessaires, patientez quelques minutes, puis vérifiez l'état à nouveau.

Résoudre les problèmes courants

API GKE Identity Service non activée

Ce problème se produit lorsque l'API GKE Identity Service n'est pas activée.

Message d'erreur

anthosidentityservice.googleapis.com is not enabled

Solution

Pour activer l'API, exécutez la commande suivante:

$ gcloud services enable anthosidentityservice.googleapis.com

Type de cluster non compatible

Ce problème se produit lorsque vous utilisez un type de cluster non compatible.

Message d'erreur

GKE Identity Service feature does not support this cluster type

Solution

Pour plus d'informations sur les types de clusters compatibles, consultez la page Types de clusters ou contactez l'assistance Google Cloud pour les requêtes de nouveaux types de clusters .

Protocoles non compatibles détectés dans la configuration

Ce problème se produit lorsque la configuration d'identité que vous avez appliquée à votre cluster contient des protocoles non compatibles.

Message d'erreur

unsupported protocol found in configuration, aborting reconciliation.

Solution

La configuration au niveau du parc pour GKE Identity Service est compatible avec les éléments suivants:

Mettez à jour la configuration sur le cluster afin qu'elle ne contienne que les protocoles compatibles ci-dessus. Pour modifier la configuration, exécutez la commande suivante:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Remplacez CLUSTER_KUBECONFIG par le chemin d'accès au fichier kubeconfig du cluster. S'il existe plusieurs contextes dans le fichier kubeconfig, le contexte actuel est utilisé. Vous devrez peut-être réinitialiser le contexte actuel sur le cluster approprié avant d'exécuter la commande.

Le cluster ne possède pas de configuration d'identité

Ce problème se produit lorsqu'aucune configuration n'est appliquée à votre cluster.

Message d'erreur

Authentication configuration is not present for this membership

Solution

Appliquez une configuration d'identité au cluster en suivant les instructions de la section Configurer des clusters.

Autorisation IAM d'administrateur GKE Hub manquante

Ce problème se produit lorsque vous ne disposez pas du rôle gkehub.admin pour le projet que vous utilisez.

Messages d'erreur

PERMISSION_DENIED: Permission 'gkehub.memberships.list' denied on '`projects//locations//memberships`'
PERMISSION_DENIED: Permission 'gkehub.features.get' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.delete' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.create' denied on '`projects//locations/global/features/identityservice`'

Solution

Un propriétaire du projet ayant l'ID project_id doit exécuter la commande suivante:

gcloud projects add-iam-policy-binding project_id --member=user:USER_ID --role=roles/gkehub.admin

Remplacez USER_ID par votre compte Google.

Fournisseurs d'identité non uniques présents dans une configuration d'identité

Ce problème se produit lorsque la configuration GKE Identity Service d'un cluster a la même valeur name pour plusieurs fournisseurs d'identité.

Message d'erreur

Configuration contains multiple identity providers with the same name

Solution

Renommez ou supprimez les entrées en double de votre configuration.

Plusieurs fournisseurs de type google présents dans une configuration d'identité

Ce problème se produit lorsque ClientConfig est configuré avec plusieurs configurations de type google.

Message d'erreur

configuration contains multiple identity providers of type 'google'

Solution

La section spec/authentication de la configuration ne peut contenir qu'une seule configuration de type google.

Mettez à jour la configuration sur le cluster afin qu'il ne comporte pas plus d'une configuration de type google. Pour modifier la configuration, exécutez la commande suivante:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Remplacez CLUSTER_KUBECONFIG par le chemin d'accès au fichier kubeconfig du cluster. S'il existe plusieurs contextes dans le fichier kubeconfig, le contexte actuel est utilisé. Vous devrez peut-être réinitialiser le contexte actuel sur le cluster approprié avant d'exécuter la commande.

Erreur lors de la récupération de la définition de ressource personnalisée du ClientConfig

Ce problème se produit lorsqu'une erreur se produit lors de la récupération de la définition de ressource personnalisée de ClientConfig à partir du cluster.

Message d'erreur

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solution

Utilisez les informations affichées dans le ERROR_REASON pour résoudre ce problème.

Erreur lors de la mise à jour de la configuration ClientConfig de GKE Identity Service

Ce problème se produit lorsqu'une erreur se produit lors de la mise à jour de ClientConfig dans le cluster.

Message d'erreur

Error updating AIS ClientConfig: ERROR_REASON

Solution

Utilisez les informations affichées dans le ERROR_REASON> pour résoudre ce problème.

ClientConfig absent sur le cluster

Ce problème se produit lorsque ClientConfig, qui doit être créé lors de l'installation de GKE Identity Service, n'est pas présent sur le cluster. Une valeur ClientConfig manquante indique que GKE Identity Service n'a pas été correctement installé sur le cluster.

Message d'erreur

ClientConfig CR not present, expected to be created when AIS was installed

Solution

Les ressources GKE Identity Service du cluster ont peut-être été supprimées accidentellement. Vous pouvez essayer de créer un cluster. Si la même erreur s'affiche dans le nouveau cluster, contactez votre administrateur de cluster ou l'assistance Google Cloud.

Pod GKE Identity Service non démarré

Ce problème se produit lorsque le pod GKE Identity Service est à l'état pending.

Message d'erreur

GKE Identity Service pod is not running (pending)

Solution

Ce problème devrait se résoudre automatiquement en quelques minutes, après quoi le pod GKE Identity Service passe à l'état running.