Como resolver problemas de configuração
Nesta seção, explicamos problemas comuns do Cloud Service Mesh e como resolvê-los. Se você precisar de mais ajuda, consulte Como receber suporte.
Verificando MembershipState
A qualquer momento, é possível 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 do MembershipState
Se o Cloud Service Mesh informar condições para o MembershipState de um cluster, isso poderá significar que as configurações da malha (como recursos personalizados do Istio) não puderam ser aplicadas. As descrições de códigos de erro a seguir fornecem mais informações sobre como resolver esses problemas.
| 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 um limite de cota. | Consulte Cotas para informações sobre as cotas específicas e como aumentá-las. | 
| CONFIG_VALIDATION_ERROR | Uma ou mais configurações não foram aplicadas devido a uma configuração inválida. | Os erros específicos são gravados nas configurações que os causaram. Mais informações sobre como diagnosticar esses erros 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. Elas podem não ter sido aplicadas e, se foram, podem ter um comportamento não intencional. | Mais informações sobre como diagnosticar esses erros estão descritas na seção Erros de validação de configuração. | 
| MULTICLUSTER_SECRET_WARNING | O cluster está usando um segredo do Istio de vários clusters criado manualmente em vez de usar a API declarativa de vários clusters para descoberta de endpoints. | Mova a configuração de descoberta de endpoints de vários clusters para a implementação declarativa. Para mais informações, consulte a 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 nível do cluster e do pool de nós. 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 malha. Para mais informações, consulte a página Ativar a 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". | Remova a dependência de binários não compatíveis. Para mais informações, consulte a página Uso de binários não compatíveis. | 
| UNSUPPORTED_GATEWAY_CLASS_USAGE | O cluster está configurado com classes de gateway (Istio e Anthos Service Mesh) que exigem migração para o gateway de entrada do Istio para se alinhar às práticas recomendadas. | Consulte a documentação para instruções detalhadas. | 
| UNSUPPORTED_MULTIPLE_CONTROL_PLANES | O cluster provisionou vários canais do plano de controle. O Cloud Service Mesh é compatível com apenas um canal por cluster. | Para mais informações, consulte Corrigir vários planos de controle. | 
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 erros por recurso são gravados no recurso aplicável. O comando a seguir pode ser usado para localizar as configurações inválidas e ver 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 mostrados 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"
    }
  ]
}