Solucionar problemas de configuración

En esta sección se explican los problemas habituales de Cloud Service Mesh y cómo resolverlos. Si necesitas más ayuda, consulta el artículo Obtener asistencia.

Comprobando MembershipState

Puedes consultar el estado más reciente de la malla en cualquier momento ejecutando el siguiente comando:

gcloud container fleet mesh describe

La salida es similar a la siguiente:

...
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
...

Códigos de error de MembershipState

Si Cloud Service Mesh informa de las condiciones de MembershipState de un clúster, podría significar que no se han podido aplicar las configuraciones de la malla (como los recursos personalizados de Istio). En las descripciones de los códigos de error que se indican a continuación, se ofrece más información sobre cómo solucionarlos.

Código de error Causa Resolución
CONFIG_APPLY_INTERNAL_ERROR No se han podido aplicar una o varias configuraciones debido a un error interno. Ponte en contacto con el servicio de asistencia.
QUOTA_EXCEEDED_* No se han podido aplicar una o varias configuraciones porque los recursos han alcanzado el límite de cuota. Consulta Cuotas para obtener información sobre las cuotas específicas y cómo aumentarlas.
CONFIG_VALIDATION_ERROR No se han podido aplicar una o varias configuraciones porque no son válidas. Los errores específicos se escriben en las configuraciones que los han provocado. En la sección Errores de validación de la configuración se describe cómo diagnosticar estos errores.
CONFIG_VALIDATION_WARNING Hemos detectado posibles problemas en una o varias configuraciones. Es posible que no se hayan aplicado y, si se han aplicado, puede que se produzcan comportamientos imprevistos. En la sección Errores de validación de la configuración se describe cómo diagnosticar estos errores.
MULTICLUSTER_SECRET_WARNING El clúster usa un secreto multiclúster de Istio creado manualmente en lugar de usar la API multiclúster declarativa para el descubrimiento de endpoints. Mover la configuración del descubrimiento de endpoints de varios clústeres a la implementación declarativa. Puedes consultar más información en la página Secretos multiclúster.
WORKLOAD_IDENTITY_REQUIRED Workload Identity no está habilitado en el clúster o en al menos uno de los grupos de nodos. Habilita la identidad de carga de trabajo a nivel de clúster y de grupo de nodos. Para obtener instrucciones, consulta la página Habilitar la identidad de carga de trabajo.
MANAGED_CNI_NOT_ENABLED CNI gestionado no está habilitado en este clúster. Habilita CNI gestionado para mantener las prácticas recomendadas en tu malla. Para obtener más información, consulta la página Habilitar CNI gestionado.
NON_STANDARD_SIDECAR_BINARY_USAGE Uno o varios comandos de los contenedores de Istio usan archivos binarios distintos de `envoy`, `pilot_agent` o `iptables`. Elimina la dependencia de los archivos binarios no admitidos. Puedes consultar más información en la página Uso de archivos binarios no admitidos.
UNSUPPORTED_GATEWAY_CLASS_USAGE El clúster está configurado con clases de pasarela (Istio y Anthos Service Mesh) que requieren una migración a Istio Ingress Gateway para cumplir las prácticas recomendadas. Consulta las instrucciones detalladas en la documentación.

Errores de validación de la configuración

Los códigos CONFIG_VALIDATION_WARNING y CONFIG_VALIDATION_ERROR indican que se han encontrado problemas en las configuraciones de malla (recursos personalizados de Istio o Kubernetes) y que es posible que no se haya aplicado correctamente un subconjunto de configuraciones.

Muchos detalles de errores por recurso se escriben en el recurso correspondiente. Puedes usar el siguiente comando para localizar las configuraciones no válidas y ver los mensajes de error específicos. Nota: Estos errores son específicos de los recursos de Istio y es posible que no se muestren todos los errores de validación.

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

La salida es similar a la siguiente:

{
  "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"
    }
  ]
}