Compreender as condições do estado das funcionalidades

Nota: os serviços canónicos são suportados automaticamente na versão 1.6.8 e superiores do Cloud Service Mesh.

Esta página descreve como interpretar e agir em função das condições comunicadas no seu cluster ou frota do Cloud Service Mesh.

Para verificar as condições, execute este comando:

  gcloud container fleet mesh describe --project FLEET_PROJECT

O resultado pode incluir conditions em membershipStates para um cluster, como:

  ...
  membershipStates:
    projects/test-project/locations/us-central1/memberships/my-membership:
      servicemesh:
        conditions:
          - code: <CONDITION_CODE>
            details: ...
            documentationLink: ....
            severity: ...

Os valores de code são descritos mais detalhadamente nesta página.

NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED

Pode ver o código de erro NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED no campo Conditions da sua subscrição:

    membershipStates:
      projects/test-project/locations/us-central1/memberships/my-membership:
        servicemesh:
          conditions:
          - code: NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
            details: One or more node pools have workload identity federation disabled.
            documentationLink: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
            severity: ERROR
          controlPlaneManagement:
            details:
            - code: REVISION_FAILED_PRECONDITION
              details: Required in-cluster components are not ready. This will be retried
                within 15 minutes.
            implementation: TRAFFIC_DIRECTOR
            state: FAILED_PRECONDITION

Este erro é apresentado se o cluster do GKE não tiver a Workload Identity Federation ativada em todos os node pools desse cluster, uma vez que este é um pré-requisito para a instalação do Cloud Service Mesh.

Para resolver esta mensagem de erro, tem de seguir as instruções para ativar a Workload Identity Federation em todos os conjuntos de nós. Tenha em atenção que a ativação pode variar consoante o seu caso de cluster específico.

Após a ativação, a mensagem de erro deve ser removida automaticamente e o cluster deve voltar ao estado ACTIVE. Se o problema persistir e precisar de assistência adicional, consulte o artigo Receber apoio técnico.

MESH_IAM_PERMISSION_DENIED

Este erro indica que a conta de serviço não tem autorização suficiente para aceder ao seu projeto de frota. Siga os passos de resolução de problemas:

  1. Verifique se a sua conta de serviço tem a função Anthos Service Mesh Service Agent concedida. Para ver detalhes sobre como validar a autorização da IAM e adicioná-la, aceda a As revisões estão a ser comunicadas como erro não saudável e use os mesmos passos aí.

  2. Se a autorização for validada enquanto o problema persistir, contacte o apoio ao cliente da Google para receber assistência adicional.

MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED

Este erro indica que a conta de serviço do projeto da frota não tem autorização suficiente para aceder a um projeto diferente (o projeto do cluster ou o projeto de rede).

Para a VPC partilhada, certifique-se de que concede a função Anthos Service Mesh Service Agent da conta de serviço de todos os projetos da frota no projeto de rede da VPC partilhada.

Para os cenários de projeto de cluster e projeto de frota do GKE, certifique-se de que concede a função Anthos Service Mesh Service Agent à conta de serviço do projeto de frota no projeto de cluster.

Exemplo de comando de resolução de problemas:

  1. Verifique se a conta de serviço do projeto de rede ou do projeto de cluster concedeu a função Anthos Service Mesh Service Agent à conta de serviço do projeto da frota. Caso contrário, execute:

    gcloud projects add-iam-policy-binding NETWORK_OR_CLUSTER_PROJECT_ID  \
        --member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \
        --role roles/anthosservicemesh.serviceAgent
    

    Além disso, confirme que não tem nenhuma automatização que remova esta vinculação.

  2. Se a autorização for validada enquanto o problema persistir, contacte o apoio ao cliente da Google para receber assistência adicional.

CONFIG_VALIDATION_ERROR

Este erro indica que não é possível aplicar com êxito algumas configurações relacionadas com a malha a uma ou mais associações na frota. Os detalhes do erro descrevem a melhor forma de o utilizador resolver este problema.

  membershipStates:
    projects/test-project/locations/us-central1/memberships/my-membership:
      servicemesh:
        conditions:
        - code: CONFIG_VALIDATION_ERROR
          details: 'Unsupported ProxyConfig fields: [proxyconfig.statNameLength]'
          severity: ERROR
        controlPlaneManagement:

Os erros de validação da configuração de uma configuração específica exigem a ação do utilizador. Por exemplo, os erros relativos à utilização de campos de API não suportados são melhor resolvidos removendo a configuração ofensiva da API Mesh.

Na Cloud Console, navegue para Kubernetes Engine > Secrets & ConfigMaps > istio-asm-managed (o nome do ConfigMap depende do canal de lançamento que está a usar; por exemplo, istio-asm-managed-stable ou istio-asm-managed-rapid) e, de seguida, selecione o separador YAML.

Por exemplo, meshConfig.configSources já não é suportado:

apiVersion: v1
data:
  mesh: |
    enablePrometheusMerge: true
    trustDomain: "foobar.svc.id.goog"
    trustDomainAliases:
      - cluster.local

    configSources:
      - address: k8s://
      - address: fs:///var/lib/istio/config/data