Solução de problemas de configuração no nível da frota

Neste documento, fornecemos instruções de solução de problemas para a configuração no nível da frota do GKE Identity Service.

Resolver problemas de configuração no nível da frota

Para resolver problemas que podem ocorrer durante a configuração dos dispositivos, siga estas instruções:

1. Validar se o GKE Identity Service está ativado

Para validar se o GKE Identity Service está ativado para seu projeto, execute o seguinte comando:

$ gcloud container fleet identity-service describe

Se você não vir nenhum erro, o GKE Identity Service está ativado e é possível prosseguir para a próxima instrução.

Erro: Identity Service Feature for project <your-project-id> is not enabled

Esse erro indica que o GKE Identity Service não foi ativado corretamente para sua frota ao configurar o recurso.

Solução: para garantir que o recurso esteja ativado para seu projeto, consulte as instruções em Configurar clusters para o GKE Identity Service.

2. Ver o status do GKE Identity Service

Para ver o status atual do GKE Identity Service, execute o seguinte comando:

$ gcloud container fleet identity-service describe

A saída desse comando tem as duas seções a seguir:

  • membershipSpecs contém a configuração do provedor de identidade que você especificou para cada cluster registrado na frota. O GKE Identity Service é configurado em cada cluster usando essas configurações.

  • membershipStates mostra o estado atual do GKE Identity Service em cada cluster, incluindo a configuração do provedor de identidade relevante e todos os erros que podem ter ocorrido durante a configuração.

Para resolver problemas em um cluster, em membershipStates, procure o cluster e procure os seguintes campos:

  • state campo: membershipStates -> <cluster-identifier> -> identityservice -> state
  • failureReason campo: membershipStates -> <cluster-identifier> -> identityservice -> failureReason.

Exemplo

Se você tiver dois clusters, helloworld e foobar, registrados na frota, a saída terá a seguinte estrutura:

Identity Service Feature:
  createTime: '222-11-10T23:05:6.146566392Z'
  membershipSpecs:
    projects/<your-project-number>/locations/<location>/memberships/helloworld:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields
    projects/<your-project-number>/locations/<location>/memberships/foobar:
      identityservice:
        authMethods:
        - name: oidc
          oidcConfig:
            clientId: id
            issuerUri: https://accounts.google.com
            ... other fields 
  membershipStates:
    projects/<your-project-number>/location/<location>/memberships/helloworld:
      identityservice:
        failureReason: AIS feature does not support this cluster type
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: ERROR
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'
    projects/<your-project-number>/location/<location>/memberships/foobar:
      identityservice:
        memberConfig:
          authMethods:
          - name: oidc
            oidcConfig:
              clientId: id
              issuerUri: https://accounts.google.com
              ... other fields
        state: OK
      state:
        code: OK
        updateTime: '2022-11-11T20:39:59.556176650Z'

  name: projects/<project-number>/locations/global/features/identityservice
  updateTime: '2022-11-11T20:40:31.859321901Z'

3. Verificar o estado do cluster

Para verificar o estado do GKE Identity Service em um cluster, verifique o seguinte:

  • O valor state é OK: indica que não ocorreu nenhum erro ao configurar o GKE Identity Service no cluster com a configuração especificada em membershipSpecs.

    Se a configuração do cluster que você está resolvendo (por exemplo: helloworld) for diferente em membershipSpecs e membershipStates, é muito provável que você tenha atualizado a configuração do cluster. Aguarde alguns minutos para que o GKE Identity Service propague as alterações no cluster e verifique o status novamente.

    Se a configuração do cluster que você estiver solucionando (por exemplo, helloworld) for a mesma em membershipSpecs e membershipStates, o GKE Identity Service foi configurado corretamente.

  • O campo state é ERROR: indica que houve erros ao configurar o GKE Identity Service no cluster com a configuração especificada em membershipSpecs.

    Para resolver o problema, consulte Solução de problemas comuns. Depois de seguir as etapas de solução de problemas necessárias, aguarde alguns minutos e verifique o status novamente.

Resolver problemas comuns

API GKE Identity Service não está ativada

Esse problema ocorre quando a API GKE Identity Service não está ativada.

Mensagem de erro

anthosidentityservice.googleapis.com is not enabled

Solução

Para fazer isso, execute este comando:

$ gcloud services enable anthosidentityservice.googleapis.com

Tipo de cluster incompatível

Esse problema ocorre quando você usa um tipo de cluster que não é compatível.

Mensagem de erro

GKE Identity Service feature does not support this cluster type

Solução

Para informações sobre os tipos de clusters compatíveis, consulte Tipos de clusters ou entre em contato com o suporte do Google Cloud para novas solicitações de tipos de clusters .

Protocolos incompatíveis encontrados na configuração

Esse problema ocorre quando a configuração de identidade que você aplicou ao cluster contém protocolos incompatíveis.

Mensagem de erro

unsupported protocol found in configuration, aborting reconciliation.

Solução

A configuração no nível da frota para o GKE Identity Service é compatível com o seguinte:

Atualize a configuração no cluster para que ele contenha apenas os protocolos compatíveis acima. Para editar a configuração, execute o seguinte comando:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Substitua CLUSTER_KUBECONFIG pelo caminho para o arquivo kubeconfig do cluster. Se houver vários contextos no kubeconfig, o contexto atual será usado. Talvez seja necessário redefinir o contexto atual para o cluster correto antes de executar o comando.

O cluster não tem uma configuração de identidade

Esse problema ocorre quando não há configuração aplicada ao cluster.

Mensagem de erro

Authentication configuration is not present for this membership

Solução

Aplique uma configuração de identidade ao cluster seguindo as instruções em Configurar clusters.

Permissão do IAM de administrador do GKE Hub ausente

Esse problema ocorre quando você não tem o papel gkehub.admin no projeto que está usando.

Mensagens de erro

PERMISSION_DENIED: Permission 'gkehub.memberships.list' denied on '`projects//locations//memberships`'
PERMISSION_DENIED: Permission 'gkehub.features.get' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.delete' denied on '`projects//locations/global/features/identityservice`'
PERMISSION_DENIED: Permission 'gkehub.features.create' denied on '`projects//locations/global/features/identityservice`'

Solução

Um proprietário do projeto com o ID project_id precisa executar o seguinte comando:

gcloud projects add-iam-policy-binding project_id --member=user:USER_ID --role=roles/gkehub.admin

Substitua USER_ID pela sua Conta do Google.

Provedores de identidade não exclusivos presentes em uma configuração de identidade

Esse problema ocorre quando a configuração do GKE Identity Service para este cluster tem o mesmo valor name para vários provedores de identidade.

Mensagem de erro

Configuration contains multiple identity providers with the same name

Solução

Renomeie ou remova entradas duplicadas da configuração.

Vários provedores do tipo google estão presentes em uma configuração de identidade.

Esse problema ocorre quando o ClientConfig está configurado com várias configurações do tipo google.

Mensagem de erro

configuration contains multiple identity providers of type 'google'

Solução

A seção spec/authentication da configuração pode conter no máximo uma configuração do tipo google.

Atualize a configuração no cluster para que ela não tenha mais de uma configuração do tipo google. Para editar a configuração, execute o seguinte comando:

kubectl --kubeconfig CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

Substitua CLUSTER_KUBECONFIG pelo caminho para o arquivo kubeconfig do cluster. Se houver vários contextos no kubeconfig, o contexto atual será usado. Talvez seja necessário redefinir o contexto atual para o cluster correto antes de executar o comando.

Erro ao buscar a definição de recurso personalizada do ClientConfig

Esse problema ocorre quando há um erro ao buscar a definição de recurso personalizada do ClientConfig no cluster.

Mensagem de erro

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solução

Use os detalhes exibidos no ERROR_REASON para resolver esse problema.

Erro ao atualizar o ClientConfig do GKE Identity Service

Esse problema ocorre quando há um erro na atualização do ClientConfig no cluster.

Mensagem de erro

Error updating AIS ClientConfig: ERROR_REASON

Solução

Use os detalhes exibidos no ERROR_REASON> para resolver esse problema.

ClientConfig ausente no cluster

Esse problema ocorre quando o ClientConfig, que precisa ser criado durante a instalação do GKE Identity Service, não está presente no cluster. Um ClientConfig ausente indica que o GKE Identity Service não foi instalado corretamente no cluster.

Mensagem de erro

ClientConfig CR not present, expected to be created when AIS was installed

Solução

Os recursos do GKE Identity Service no cluster podem ter sido excluídos acidentalmente. Tente criar um novo cluster. Se você vir o mesmo erro no novo cluster, entre em contato com o administrador do cluster ou com o suporte do Google Cloud.

Pod do GKE Identity Service não iniciado

Esse problema ocorre quando o pod do GKE Identity Service está no estado pending.

Mensagem de erro

GKE Identity Service pod is not running (pending)

Solução

Esse problema será resolvido automaticamente em alguns minutos. Depois disso, o pod do GKE Identity Service mudará para o estado running.