Resolução de problemas

Por que motivo recebo um erro not found ao adicionar um ponto final?

Se estiver a receber erros 404 ao adicionar serviços ou pontos finais, certifique-se de que criou o espaço de nomes e o serviço (por esta ordem) antes de adicionar um ponto final. O serviço tem de existir antes de poder adicionar pontos finais adicionais.

Quando procuro um serviço, porque é que não recebo nenhum dos meus pontos finais?

Certifique-se de que o projeto, a região, o nome do espaço de nomes e o nome do serviço estão corretos na sua solicitação e correspondem ao local onde registou os pontos finais. Todos os serviços do Service Directory residem num espaço de nomes regional, pelo que os serviços registados numa região não correspondem aos dados numa região separada.

Concedi acesso a um serviço a alguém, mas essa pessoa continua a receber a mensagem permission denied.

Isto pode dever-se a alguns motivos. Primeiro, verifique se a região está correta. Se definir uma política num espaço de nomes ou num serviço, a política aplica-se apenas a essa região específica. Se o utilizador estiver a tentar registar ou procurar o mesmo serviço noutra região, não terá acesso, a menos que lhe conceda também acesso ao IAM a esse serviço regional. Para depurar problemas de acesso, experimente o método TestIamPermissions para serviços e espaços de nomes.

Adicionei alguns pontos finais e, em seguida, removi o back-end do serviço. Por que motivo os pontos finais ainda estão lá?

O diretório de serviços não faz verificações de estado nem envia sinais de pulsação automáticos e não remove pontos finais, a menos que os remova explicitamente. Certifique-se de que adiciona código aos back-ends/orquestradores de serviços que removem o ponto final do diretório de serviços assim que este deixar de existir. Recomendamos a utilização de campos de anotação de tempo de vida nos pontos finais para registar a última vez que um ponto final foi registado ou atualizado.

Consigo procurar pontos finais, mas falho sempre quando tento estabelecer ligação aos mesmos.

O diretório de serviços não garante a acessibilidade a partir do cliente. Os serviços registam os respetivos pontos finais diretamente no Service Directory. No entanto, o endereço registado no diretório de serviços pode não ser encaminhável (especialmente se o cliente e o servidor estiverem em redes privadas separadas). Se o ponto final for encaminhável a partir do cliente, pode dever-se a um ponto final não saudável. Veja a seguinte pergunta.

Como posso adicionar dados de saúde para endpoints para que os meus clientes saibam a que endpoint se ligar?

Quando usar o equilíbrio de carga do lado do cliente, recomendamos que os back-ends do serviço atualizem ocasionalmente um campo de anotação no ponto final que os clientes podem usar para tomar decisões sobre a que back-end se ligar. O diretório de serviços não inspeciona nem avalia estes dados.

Criei um espaço de nomes. Por que motivo não consigo atribuir-lhe uma zona privada do Cloud DNS?

Certifique-se de que tem a autorização de IAM para o espaço de nomes, uma vez que esta autorização permite-lhe criar a zona privada associada.servicedirectory.namespaces.associatePrivateZone Por predefinição, as funções de editor de projetos, proprietário do projeto, administrador do Service Directory e editor do Service Directory têm esta autorização.

Quando faço uma pesquisa DNS de um serviço, porque é que não recebo nenhum dos meus pontos finais?

Existem vários motivos, como os seguintes:

  1. O espaço de nomes associado foi eliminado. Pode verificar isto executando o comando get na zona privada. Se o elemento serviceDirectoryConfig.deletionTime estiver definido, o espaço de nomes associado e todos os respetivos pontos finais foram eliminados.
  2. Confirme que está a emitir o pedido a partir de uma rede que tem autorização para consultar a zona privada. Pode encontrar a lista de redes executando o comando get na zona privada.
  3. Não existem pontos finais (válidos) para o serviço. Execute o comando resolve no serviço através da API Service Directory para garantir que o serviço não está vazio e tem, pelo menos, um IP de ponto final válido. O suporte de DNS só está disponível para pontos finais com endereços IP IPv4 ou IPv6 válidos.
  4. Certifique-se de que está a consultar a zona correta. Por exemplo, suponha que cria uma zona do Service Directory denominada example.com e tem outra zona privada (padrão) denominada billing.example.com. Em seguida, qualquer consulta DNS a billing.example.com devolve registos de recursos que pertencem à zona billing.example.com e não ao serviço billing no espaço de nomes do Service Directory associado a example.com.Para mais informações, consulte a ordem de resolução de nomes.

Por que motivo os meus serviços do GKE não estão a ser sincronizados com o Service Directory?

Existem vários motivos, como os seguintes:

  1. Confirme que tem um ServiceDirectoryRegistrationPolicy implementado no cluster do GKE para o espaço de nomes que está a tentar sincronizar. Além disso, confirme se os serviços que está a tentar sincronizar correspondem ao seletor de etiquetas na sua política.
  2. Já existe um espaço de nomes do Service Directory criado manualmente ou através de alguma outra integração com o mesmo nome que o espaço de nomes do GKE que está a tentar sincronizar. Tem de mudar o nome ou eliminar o seu espaço de nomes do Service Directory existente para não haver conflitos.
  3. As autorizações da sua conta de serviço do Service Directory foram removidas. Certifique-se de que service-{PROJECT_NUMBER}@gcp-sa-servicedirectory.s3ns-system.iam.gserviceaccount.com tem a autorização de IAM Service Directory Service Agent. Para ver detalhes sobre o IAM, consulte a documentação do IAM.

O que se segue?