Resolução de problemas de configuração ao nível da frota

Este documento fornece instruções de resolução de problemas para a configuração ao nível da frota do GKE Identity Service.

Resolva problemas de configuração ao nível da frota

Para resolver problemas que possam ocorrer durante a configuração da sua frota, siga estas instruções:

1. Valide se o serviço de identidade do GKE está ativado

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

$ gcloud container fleet identity-service describe

Se não vir erros, o GKE Identity Service está ativado e pode continuar para a instrução seguinte.

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

Se vir este erro, indica que o GKE Identity Service não foi ativado corretamente para a sua frota quando configurou a funcionalidade.

Solução: Para garantir que a funcionalidade está ativada para o seu projeto, consulte as instruções em Configure clusters for GKE Identity Service.

2. Veja o estado do serviço de identidade do GKE

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

$ gcloud container fleet identity-service describe

O resultado deste comando tem as seguintes duas secções:

  • membershipSpecs contém a configuração do fornecedor de identidade que especificou para cada cluster registado na frota. O GKE Identity Service é configurado em cada cluster através destas configurações.

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

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

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

Exemplo

Se tiver dois clusters helloworld e foobar registados na frota, o resultado tem 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. Valide o estado do cluster

Para validar o estado do serviço de identidade do GKE num cluster, verifique o seguinte:

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

    Se a configuração do cluster para o qual está a resolver problemas (por exemplo, helloworld) for diferente em membershipSpecs e membershipStates, é provável que tenha atualizado a configuração do cluster. Aguarde alguns minutos para que o GKE Identity Service propague as alterações para o cluster e verifique novamente o estado.

    Se a configuração do cluster para o qual está a resolver problemas (por exemplo, helloworld) for a mesma em membershipSpecs e membershipStates, significa que o GKE Identity Service foi configurado corretamente.

  • O campo state é ERROR: isto indica que ocorreram erros ao configurar o serviço de identidade do GKE no cluster com a configuração especificada em membershipSpecs.

    Para resolver o problema, consulte o artigo Resolva problemas comuns. Depois de seguir os passos de resolução de problemas necessários, aguarde alguns minutos e, em seguida, verifique novamente o estado.

Resolva problemas comuns

API GKE Identity Service não ativada

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

Mensagem de erro

anthosidentityservice.googleapis.com is not enabled

Solução

Para ativar a API, execute o seguinte comando:

$ gcloud services enable anthosidentityservice.googleapis.com

Tipo de cluster não suportado

Este problema ocorre quando usa um tipo de cluster não suportado.

Mensagem de erro

GKE Identity Service feature does not support this cluster type

Solução

Para obter informações sobre os tipos de clusters suportados, consulte os tipos de clusters ou contacte o apoio técnico do Google Cloud para pedidos de novos tipos de clusters .

Foram encontrados protocolos não suportados na configuração

Este problema ocorre quando a configuração de identidade que aplicou ao seu cluster contém protocolos não suportados.

Mensagem de erro

unsupported protocol found in configuration, aborting reconciliation.

Solução

A configuração ao nível da frota para o serviço de identidade do GKE suporta o seguinte:

Atualize a configuração no cluster para que contenha apenas os protocolos suportados 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 ficheiro kubeconfig do cluster. Se existirem vários contextos no kubeconfig, é usado o contexto atual. Pode ter de repor o contexto atual para o cluster correto antes de executar o comando.

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

Este problema ocorre quando não existe nenhuma configuração aplicada ao seu 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.

Autorização de IAM de administrador do GKE Hub em falta

Este problema ocorre quando não tem a função gkehub.admin no projeto que está a usar.

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 tem de 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 Google.

Fornecedores de identidade não únicos presentes numa configuração de identidade

Este problema ocorre quando a configuração do serviço de identidade do GKE para um cluster tem o mesmo valor name para vários fornecedores de identidade.

Mensagem de erro

Configuration contains multiple identity providers with the same name

Solução

Mude o nome ou remova entradas duplicadas da sua configuração.

Vários fornecedores do tipo google presentes numa configuração de identidade

Este 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 secçã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 não tenha mais do que 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 ficheiro kubeconfig do cluster. Se existirem vários contextos no kubeconfig, é usado o contexto atual. Pode ter de repor o contexto atual para o cluster correto antes de executar o comando.

Erro ao obter a definição de recurso personalizado do ClientConfig

Este problema ocorre quando existe um erro ao obter a definição de recursos personalizados do ClientConfig do cluster.

Mensagem de erro

error fetching the ClientConfig's Custom Resource Definition: ERROR_REASON

Solução

Use os detalhes apresentados em ERROR_REASON para resolver este problema.

Erro ao atualizar o ClientConfig do serviço de identidade do GKE

Este problema ocorre quando existe um erro na atualização do ClientConfig no cluster.

Mensagem de erro

Error updating AIS ClientConfig: ERROR_REASON

Solução

Use os detalhes apresentados em ERROR_REASON> para resolver este problema.

ClientConfig não presente no cluster

Este problema ocorre quando o ClientConfig, que deve ser criado quando instala o GKE Identity Service, não está presente no cluster. Uma ClientConfig em falta indica que o serviço de identidade do GKE 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 serviço de identidade do GKE no cluster podem ter sido eliminados acidentalmente. Pode tentar criar um novo cluster. Se vir o mesmo erro no novo cluster, contacte o administrador do cluster ou o Apoio técnico do Google Cloud.

O pod do serviço de identidade do GKE não foi iniciado

Este problema ocorre quando o pod do serviço de identidade do GKE está num estado pending.

Mensagem de erro

GKE Identity Service pod is not running (pending)

Solução

Este problema deve resolver-se automaticamente em alguns minutos, após os quais o pod do serviço de identidade do GKE muda para o estado running.