Entender as condições de estado do recurso

Observação:os serviços canônicos são compatíveis com a versão 1.6.8 do Cloud Service Mesh e versões mais recentes.

Esta página descreve como interpretar e agir de acordo com as condições informadas no cluster ou na frota do Cloud Service Mesh.

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

  gcloud container fleet mesh describe --project FLEET_PROJECT

A saída 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 em mais detalhes nesta página.

NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED

Você pode encontrar o código de erro NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED no campo Conditions da sua assinatura:

    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

Esse erro aparece se o cluster do GKE não tiver a Federação de Identidade da Carga de Trabalho ativada em todos os pools de nós desse cluster, já que esse é um pré-requisito para a instalação do Cloud Service Mesh.

Para resolver essa mensagem de erro, siga as instruções para Ativar a federação de identidade da carga de trabalho em todos os pools de nós. A ativação pode variar dependendo do caso específico do cluster.

Após a ativação, a mensagem de erro será removida automaticamente, e o cluster voltará ao estado ACTIVE. Se o problema persistir e você precisar de mais ajuda, consulte Como receber suporte.

MESH_IAM_PERMISSION_DENIED

Esse erro indica que a conta de serviço não tem permissão suficiente para acessar seu projeto de frota. Siga as etapas para resolver o problema:

  1. Verifique se a conta de serviço recebeu o papel Anthos Service Mesh Service Agent. Para saber como verificar e adicionar a permissão do IAM, acesse O status das revisões é considerado não íntegro e siga as mesmas etapas.

  2. Se a permissão for verificada e o problema persistir, entre em contato com o suporte ao cliente do Google para receber mais ajuda.

MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED

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

Para a VPC compartilhada, conceda o papel Anthos Service Mesh Service Agent da conta de serviço de todos os projetos de frota no projeto de rede VPC compartilhada.

Para os cenários de projeto de cluster e de frota do GKE, conceda o papel Anthos Service Mesh Service Agent da conta de serviço do projeto de frota no projeto de cluster.

Exemplo de comando de solução de problemas:

  1. Verifique se o projeto de rede ou a conta de serviço do projeto do cluster concedeu o papel 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 se você não tem uma automação que remova essa vinculação.

  2. Se a permissão for verificada e o problema persistir, entre em contato com o suporte ao cliente do Google para receber mais ajuda.

CONFIG_VALIDATION_ERROR

Esse erro indica que algumas configurações relacionadas à malha aplicadas a uma ou mais associações na frota não podem ser aplicadas. Os detalhes do erro descrevem a melhor forma de resolver o 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:

Erros de validação de configuração para uma configuração específica exigem ação do usuário. Por exemplo, os erros relacionados ao uso de campos de API sem suporte são melhor resolvidos removendo a configuração inadequada da API Mesh.

No console do Cloud, acesse Kubernetes Engine > Secrets & ConfigMaps > istio-asm-managed (o nome do ConfigMap depende do canal de lançamento que você está usando, por exemplo, istio-asm-managed-stable ou istio-asm-managed-rapid) e selecione a guia YAML.

Por exemplo, meshConfig.configSources não é mais compatível:

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

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