Resolver problemas de configuração

Esta secção explica os problemas comuns do Cloud Service Mesh e como os resolver. Se precisar de assistência adicional, consulte o artigo Receber apoio técnico.

A verificar o MembershipState

Pode verificar o estado mais recente da malha em qualquer altura executando o seguinte comando:

gcloud container fleet mesh describe

O resultado é semelhante ao seguinte:

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

Se o Cloud Service Mesh comunicar condições ao MembershipState de um cluster, pode significar que não foi possível aplicar as configurações da malha (como recursos personalizados do Istio). As descrições dos códigos de erro seguintes dão mais informações sobre como resolvê-los.

Código de erro Causa Resolução
CONFIG_APPLY_INTERNAL_ERROR Não foi possível aplicar uma ou mais configurações devido a um erro interno. Contacte o apoio ao cliente.
QUOTA_EXCEEDED_* Não foi possível aplicar uma ou mais configurações porque os recursos atingiram um limite de quota. Consulte o artigo Quotas para ver informações sobre as quotas específicas e como aumentá-las.
CONFIG_VALIDATION_ERROR Não foi possível aplicar uma ou mais configurações devido a uma configuração inválida. Os erros específicos são escritos nas configurações que os causaram. Pode encontrar mais informações sobre como diagnosticar estes erros na secção: Erros de validação da configuração.
CONFIG_VALIDATION_WARNING Encontrámos potenciais problemas numa ou mais configurações. Estas podem não ter sido aplicadas e, se tiverem sido aplicadas, pode haver um comportamento não intencional. Pode encontrar mais informações sobre como diagnosticar estes erros na secção: Erros de validação da configuração.
MULTICLUSTER_SECRET_WARNING O cluster está a usar um segredo de vários clusters do Istio criado manualmente em vez de usar a API de vários clusters declarativa para a deteção de pontos finais. Mova a configuração da descoberta de endpoints multicluster para a implementação declarativa. Pode ver mais informações na página Segredos de vários clusters.

Erros de validação da configuração

Os códigos CONFIG_VALIDATION_WARNING e CONFIG_VALIDATION_ERROR indicam que foram encontrados problemas nas configurações da malha (recursos personalizados do Istio ou Kubernetes) e que um subconjunto de configurações pode não ter sido aplicado corretamente.

Muitos detalhes de erros por recurso são escritos no recurso aplicável. Pode usar o seguinte comando para localizar as configurações inválidas e ver as mensagens de erro específicas. (Nota: estes erros destinam-se especificamente a recursos do Istio e nem todos os erros de validação podem ser apresentados aqui).

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

O resultado é semelhante ao seguinte:

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