Résoudre les problèmes de configuration

Cette section décrit les problèmes courants liés à Cloud Service Mesh et explique comment les résoudre. Si vous avez besoin d'une aide supplémentaire, consultez la page Assistance.

Vérifier MembershipState

Vous pouvez à tout moment vérifier l'état le plus récent du maillage en exécutant la commande suivante:

gcloud container fleet mesh describe

Le résultat est semblable à :

...
membershipSpecs:
  projects/project_id/locations/global/memberships/cluster:
    mesh:
      management: MANAGEMENT_AUTOMATIC
membershipStates:
  projects/project_id/locations/global/memberships/cluster:
    servicemesh:
      ...
      conditions:
        - code: CONFIG_VALIDATION_WARNING
          documentationLink: https://cloud.google.com/...
          details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
          severity: WARNING
...

Codes d'erreur MembershipState

Si Cloud Service Mesh signale les conditions à MembershipState pour un cluster, cela peut signifier que les configurations de maillage (telles que les ressources personnalisées Istio) n'ont pas pu être appliquées. Les descriptions de codes d'erreur suivantes fournissent plus d'informations sur la façon de les résoudre.

Code d'erreur Cause Résolution
CONFIG_APPLY_INTERNAL_ERROR Échec de l'application d'une ou plusieurs configurations en raison d'une erreur interne. Veuillez contacter le service client.
QUOTA_EXCEEDED_* Une ou plusieurs configurations n'ont pas pu être appliquées, car les ressources ont atteint une limite de quota. Consultez la page Quotas pour en savoir plus sur les différents quotas et découvrir comment les augmenter.
CONFIG_VALIDATION_ERROR Une ou plusieurs configurations n'ont pas pu être appliquées en raison d'une configuration non valide. Les erreurs spécifiques sont écrites dans les configurations qui les ont générées. Pour en savoir plus sur le diagnostic de ces erreurs, consultez la section Erreurs de validation de la configuration.
CONFIG_VALIDATION_WARNING Nous avons rencontré des problèmes potentiels dans une ou plusieurs configurations. Il est possible que ces règles n'aient pas été appliquées et, si elles l'ont été, il peut y avoir un comportement inattendu. Pour en savoir plus sur le diagnostic de ces erreurs, consultez la section Erreurs de validation de la configuration.

Erreurs de validation de la configuration

Les codes CONFIG_VALIDATION_WARNING et CONFIG_VALIDATION_ERROR indiquent que des problèmes ont été détectés sur les configurations de maillage (Istio ou les ressources personnalisées Kubernetes) et qu'un sous-ensemble de configurations n'a peut-être pas été correctement appliqué.

De nombreux détails d'erreur par ressource sont écrits dans la ressource applicable. La commande suivante permet de localiser les configurations non valides et d'afficher les messages d'erreur spécifiques. (Remarque: ces règles s'appliquent spécifiquement aux ressources Istio. Il est possible que toutes les erreurs de validation ne s'affichent pas ici.)

for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
  do kubectl get $resource --all-namespaces --output=json | \
   jq  '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done

Le résultat est semblable à :

{
  "name": "demo-envoy-filter",
  "namespace": "default",
  "kind": "EnvoyFilter",
  "conditions": [
    {
      "lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
      "message": "This API is not supported",
      "reason": "Invalid",
      "status": "False",
      "type": "Accepted"
    }
  ]
}