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