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 | 
    Uma ou mais configurações não foram aplicadas 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. | 
MULTICLUSTER_SECRET_WARNING | 
    O cluster está usando um segredo de vários clusters do Istio criado manualmente em vez de usar a API declarativa de vários clusters para descoberta de endpoints. | Mover a configuração de descoberta de endpoints de vários clusters para a implementação declarativa. Confira mais informações na página Secrets de vários clusters. | 
WORKLOAD_IDENTITY_REQUIRED | 
    A identidade da carga de trabalho não está ativada para o cluster ou pelo menos um dos pools de nós. | Ative a identidade da carga de trabalho no cluster e no nodepool. Para instruções, consulte a página Ativar a identidade da carga de trabalho. | 
MANAGED_CNI_NOT_ENABLED | 
    A CNI gerenciada não está ativada para este cluster. | Ative a CNI gerenciada para manter as práticas recomendadas na sua malha. Confira mais informações na página Ativar CNI gerenciada. | 
NON_STANDARD_SIDECAR_BINARY_USAGE | 
    Um ou mais comandos nos contêineres do Istio estão usando binários diferentes de "envoy", "pilot_agent" ou "iptables". | Remover a dependência de binários sem suporte. Confira mais informações na página Uso de binários sem suporte. | 
UNSUPPORTED_GATEWAY_CLASS_USAGE | 
    O cluster está configurado com classes de gateway (Istio e Anthos Service Mesh) que exigem a migração para o gateway de entrada do Istio para se alinhar às práticas recomendadas. | Consulte a documentação para ver as instruções detalhadas. | 
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 (Istio ou recursos personalizados 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 são 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"
    }
  ]
}