Como resolver problemas de configuração

Esta seção explica problemas comuns do Cloud Service Mesh e como resolvê-los. Se você precisar de mais ajuda, consulte Como receber suporte.

Como verificar MembershipState

A qualquer momento, você pode verificar o status mais recente da malha executando o seguinte comando:

gcloud container fleet mesh describe

A saída é semelhante a:

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

Se o Cloud Service Mesh informar condições para o MembershipState de um cluster, isso pode significar que as configurações da malha (como os recursos personalizados do Istio) não puderam ser aplicadas. As descrições de código de erro a seguir oferecem mais informações sobre como resolvê-los.

Código do erro Causa Resolução
CONFIG_APPLY_INTERNAL_ERROR Não foi possível aplicar uma ou mais configurações devido a um erro interno. Entre em contato com o suporte ao cliente.
QUOTA_EXCEEDED_* Uma ou mais configurações não foram aplicadas porque os recursos atingiram o limite de cota. Consulte Cotas para informações sobre as cotas 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. Erros específicos são gravados nas configurações que os causaram. Mais informações sobre como diagnosticar esses problemas estão descritas na seção Erros de validação de configuração.
CONFIG_VALIDATION_WARNING Encontramos possíveis problemas em uma ou mais configurações. Talvez elas não tenham sido aplicadas, e, se tiverem sido, talvez haja um comportamento não intencional. Mais informações sobre como diagnosticar esses problemas estão descritas na seção Erros de validação de configuração.

Erros de validação de configuração

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

Muitos detalhes de erro por recurso são gravados no recurso aplicável. O comando a seguir pode ser usado para localizar as configurações inválidas e conferir as mensagens de erro específicas. Observação: esses erros são específicos para recursos do Istio, e nem todos os erros de validação podem ser exibidos 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

A saída é semelhante a:

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