Configure domínios personalizados para usar no acesso aos seus serviços do Knative serving. Pode mapear um ou mais domínios personalizados para um serviço individual ou pode mapear um único domínio para o seu cluster que todos os serviços usam. O mapeamento de domínio personalizado pode ser o domínio base, como your-domain.com
, ou um subdomínio, como your-subdomain.your-domain.com
.
Por predefinição, os serviços que implementa nos seus clusters do Knative Serving são definidos para o domínio base nip.io
. Isto permite-lhe testar imediatamente os seus serviços num URL como:
http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
Saiba mais sobre os domínios de teste.
Antes de começar
Tem de ter ou comprar o domínio que quer mapear para os seus serviços. Pode usar qualquer registador de nomes de domínio, mas se usar o Cloud Domains, o domínio é automaticamente validado para o Knative Serving, pelo que não tem de passar pelo processo de validação de domínio.
Se quiser registar um domínio com o Cloud Domains, consulte o artigo Registar um domínio com o Cloud Domains na consola do Knative Serving.
Tem de ter, pelo menos, a função de gestão de identidades e acessos Kubernetes Engine Developer ou autorizações equivalentes.
Para ativar o HTTPS com os seus mapeamentos de domínios personalizados, tem de configurar certificados TLS geridos ou configurar os seus próprios certificados.
Para mapear um domínio personalizado para o seu cluster ou serviços numa rede privada e interna, tem de desativar os certificados TLS geridos.
Mapear um domínio personalizado
Pode usar a Google Cloud consola ou as ferramentas de linha de comandos para mapear o seu domínio personalizado.
Geralmente, para configurar um domínio personalizado:
- Opcional: reserve o endereço IP do seu equilibrador de carga.
- Mapeie os seus serviços ou o cluster para o domínio personalizado no Knative Serving.
- Atualize os registos de DNS na sua entidade de registo de domínios.
Reserve o endereço IP do balanceador de carga
Quando o Knative serving está instalado, o controlador de entrada do Istio cria um equilibrador de carga com um endereço IP disponível.
Consoante o seu cluster do GKE, pode ter de reservar o endereço IP do balanceador de carga para o controlador de entrada do Istio:
- Fora de Google Cloud
- Consulte a documentação do ambiente onde executa o cluster do GKE para determinar como os endereços IP são geridos e se o endereço IP do balanceador de carga é estático. Consulte também as páginas de configuração do seu cluster do GKE. Por exemplo, consoante a forma como configurou o equilíbrio de carga para o Google Distributed Cloud, pode já ter reservado esses endereços IP.
- A Google Cloud
Tem de reservar o endereço IP externo do balanceador de carga para garantir que permanece o mesmo se o seu serviço de entrada for eliminado. Consoante a configuração do cluster, o endereço IP está disponível externamente ou apenas internamente, por exemplo, clusters privados.
- Balanceadores de carga internos em Google Cloud
- Consulte a página seguinte para ver detalhes sobre como reservar o endereço IP do seu balanceador de carga interno: Reservar um endereço IP interno estático
- Balanceadores de carga externos em Google Cloud
- Para reservar o endereço IP do seu balanceador de carga externo:
Obtenha o endereço IP do balanceador de carga:
Consola
Para obter o endereço IP externo do balanceador de carga a partir da Google Cloud consola:- Aceda à página do GKE na Google Cloud consola:
Aceder ao GKE - Clique em Serviços e entrada.
- Identifique o serviço que é a entrada do Istio do seu cluster. O Tipo do serviço vai ser Balanceador de carga externo e o Nome vai ser
istio-ingressgateway
. - Depois de encontrar o serviço de entrada do Istio do cluster, copie o respetivo ponto final. Este será o endereço IP sem o número da porta. Por exemplo, pode ver
00.000.000.000:11
listado como um ponto final, mas só precisa de copiar00.000.000.000
.
kubectl
Para obter o IP externo do balanceador de carga, execute o seguinte comando:
kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE
Substitua ASM-INGRESS-NAMESPACE pelo espaço de nomes onde se encontra a entrada do Cloud Service Mesh. Especifique
istio-system
se tiver instalado o Cloud Service Mesh com a respetiva configuração predefinida.O resultado tem um aspeto semelhante ao seguinte:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) istio-ingressgateway LoadBalancer XX.XX.XXX.XX pending 80:32380/TCP,443:32390/TCP,32400:32400/TCP
em que o valor EXTERNAL-IP é o seu endereço IP externo do LoadBalancer.
- Aceda à página do GKE na Google Cloud consola:
Reserve o endereço IP como um IP estático:
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
Substituição:
- ADDRESS-NAME com o nome que quer dar ao seu IP estático.
- EXTERNAL-IP com o endereço IP externo do balanceador de carga que obteve no passo anterior.
- REGION com a região onde o seu cluster está localizado.
Depois de obter o endereço IP do seu equilibrador de carga, pode usá-lo para mapear o seu domínio personalizado:
Serviços de mapeamento
Escolha um dos seguintes métodos para mapear o seu domínio personalizado para um serviço de publicação do Knative. Cada serviço individual pode ser mapeado para vários domínios.
Consola
Abra a página de mapeamentos de domínios na Google Cloud consola:
Aceda a Mapeamentos de domínios
Tenha em atenção que, se a janela de visualização for demasiado pequena, o botão Mapear domínios personalizados não é apresentado e tem de clicar no ícone de elipse vertical de 3 pontos no canto direito da página.
Clique em Adicionar mapeamento e selecione Adicionar mapeamento de domínio de serviço para mapear um domínio para um serviço individual. Pode mapear vários domínios para cada serviço.
Na lista pendente do formulário Adicionar mapeamento, selecione o serviço ao qual quer mapear o seu domínio personalizado:
Introduza o nome do domínio. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só lhe permite mapear um domínio para/
e não para um caminho base específico. Assim, qualquer encaminhamento de caminhos tem de ser processado através de um router no contentor do serviço ou através do Firebase Hosting. -
Não pode mapear o seu domínio para um subdomínio que corresponda ao URL dos seus serviços. Os URLs para um serviço são definidos como
http://{service}.{namespace}.{your-domain.com}
. Por conseguinte, se tiver um serviço emtest.default.your-domain.com
, não pode criar um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
Clique em Continuar.
Atualize os seus registos de DNS no Website do registador de domínios com os registos de DNS apresentados no último passo. Pode apresentar os registos em qualquer altura clicando em Registos DNS no menu de ações "…" de um mapeamento de domínio.
Clique em Concluído.
gcloud
Mapeie o seu serviço para o domínio personalizado:
gcloud run domain-mappings create --service SERVICE --domain DOMAIN
Substituição:
- SERVICE com o nome do seu serviço.
- DOMAIN com o seu domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só lhe permite mapear um domínio para/
e não para um caminho base específico. Assim, qualquer encaminhamento de caminhos tem de ser processado através de um router no contentor do serviço ou através do Firebase Hosting. -
Não pode mapear o seu domínio para um subdomínio que corresponda ao URL dos seus serviços. Os URLs para um serviço são definidos como
http://{service}.{namespace}.{your-domain.com}
. Por conseguinte, se tiver um serviço emtest.default.your-domain.com
, não pode criar um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
Agora que o seu domínio personalizado está mapeado para o Knative Serving, tem de adicionar registos DNS na entidade de registo do seu domínio.
Mapeamento de clusters
Escolha um dos seguintes métodos para mapear o seu domínio personalizado para o cluster:
Consola
Abra a página de mapeamentos de domínios na Google Cloud consola:
Aceda a Mapeamentos de domínios
Tenha em atenção que, se a janela de visualização for demasiado pequena, o botão Mapear domínios personalizados não é apresentado e tem de clicar no ícone de elipse vertical de 3 pontos no canto direito da página.
Clique em Adicionar mapeamento e selecione Adicionar domínio predefinido para mapear um domínio para todos os serviços no seu cluster. Por predefinição, os novos serviços que implementar usam o domínio mapeado.
Clique na caixa de verificação para aplicar o novo mapeamento de domínio a todos os serviços existentes no cluster.
Na lista pendente do formulário Adicionar mapeamento, selecione o cluster ao qual quer mapear o seu domínio personalizado:
Introduza o nome do domínio. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só lhe permite mapear um domínio para/
e não para um caminho base específico. Assim, qualquer encaminhamento de caminhos tem de ser processado através de um router no contentor do serviço ou através do Firebase Hosting. -
Não pode mapear o seu domínio para um subdomínio que corresponda ao URL dos seus serviços. Os URLs para um serviço são definidos como
http://{service}.{namespace}.{your-domain.com}
. Por conseguinte, se tiver um serviço emtest.default.your-domain.com
, não pode criar um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
Clique em Continuar.
Atualize os seus registos de DNS no Website do registador de domínios com os registos de DNS apresentados no último passo. Pode apresentar os registos em qualquer altura clicando em Registos DNS no menu de ações "…" de um mapeamento de domínio.
Clique em Concluído.
kubectl
Execute o seguinte comando para remover o domínio base existente do
config-domain
ConfigMap e substitua-o pelo seu domínio personalizado:kubectl patch configmap config-domain --namespace knative-serving --patch \ '{"data": {"nip.io": null, "DOMAIN": ""}}'
Substitua DOMAIN pelo seu domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só lhe permite mapear um domínio para/
e não para um caminho base específico. Assim, qualquer encaminhamento de caminhos tem de ser processado através de um router no contentor do serviço ou através do Firebase Hosting. -
Não pode mapear o seu domínio para um subdomínio que corresponda ao URL dos seus serviços. Os URLs para um serviço são definidos como
http://{service}.{namespace}.{your-domain.com}
. Por conseguinte, se tiver um serviço emtest.default.your-domain.com
, não pode criar um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento do caminho base não é suportado. O termo caminho base
refere-se ao nome do caminho do URL que se encontra após o nome do domínio. Por exemplo,
Agora que o seu domínio personalizado está mapeado para o Knative Serving, tem de adicionar registos DNS na entidade de registo do seu domínio.
Adicione os seus registos de DNS no registo de domínios
Depois de mapear o seu serviço para um domínio personalizado no Knative Serving, tem de atualizar os registos de DNS na sua entidade de registo de domínios. Para sua conveniência, o Knative serving gera e apresenta os registos de DNS que tem de introduzir. Tem de adicionar estes registos que apontam para o serviço Knative serving no registador do seu domínio para que o mapeamento entre em vigor.
Se estiver a usar o Cloud DNS como fornecedor de DNS, consulte o artigo Adicionar um registo A.
Recupere as informações dos registos de DNS para os seus mapeamentos de domínios através do seguinte comando:
Consola
Aceda à página de mapeamentos de domínios do Knative serving:
Clique no ícone de elipse vertical de 3 pontos à direita do seu serviço e, de seguida, clique em REGISTOS DE DNS para apresentar todos os registos de DNS:
gcloud
gcloud run domain-mappings describe --domain DOMAIN
Substitua DOMAIN pelo seu domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
.Precisa de todos os registos devolvidos no cabeçalho
resourceRecords
.Inicie sessão na sua conta na entidade de registo de domínio e, de seguida, abra a página de configuração de DNS.
Localize a secção de registos de anfitriões da página de configuração do seu domínio e, em seguida, adicione cada um dos registos de recursos que recebeu quando mapeou o seu domínio para o seu serviço Knative serving.
Quando adiciona cada um dos registos DNS acima à conta no fornecedor de DNS:
- Selecione o tipo devolvido no registo DNS no passo anterior:
A
,AAAA
ouCNAME
. - Use o nome
www
para mapear parawww.your-domain.com
. - Use o nome
@
para mapearyour-domain.com
. - Use o
caráter universal
*
para mapear para*.your-domain.com
.
- Selecione o tipo devolvido no registo DNS no passo anterior:
Guarde as alterações na página de configuração de DNS da conta do seu domínio. Na maioria dos casos, estas alterações demoram apenas alguns minutos a entrar em vigor, mas, em alguns casos, podem demorar até várias horas, consoante o registador e o tempo de vida (TTL) de quaisquer registos DNS anteriores do seu domínio. Pode usar uma ferramenta
dig
, como esta versão online, para confirmar que os registos DNS foram atualizados com êxito.dig
Teste o sucesso navegando para o seu serviço no novo URL, por exemplo,
https://www.your-domain.com
. Tenha em atenção que a emissão do certificado SSL/TLS gerido pode demorar vários minutos.
Adicionar proprietários de domínios validados a outros utilizadores ou contas de serviço
Quando um utilizador valida um domínio, esse domínio só é validado para a conta desse utilizador. Isto significa que apenas esse utilizador pode adicionar mais mapeamentos de domínios que usem esse domínio. Assim, para permitir que outros utilizadores adicionem mapeamentos que usem esse domínio, tem de os adicionar como proprietários validados.
Se precisar de adicionar proprietários validados do seu domínio a outros utilizadores ou contas de serviço, pode adicionar autorizações através da página Search Console:
Navegue para este endereço no navegador de Internet:
Em Propriedades, clique no domínio para o qual quer adicionar um utilizador ou uma conta de serviço.
Desloque a página para baixo até à lista Proprietários validados, clique em Adicionar proprietário e, de seguida, introduza um endereço de email da Conta Google ou um ID da conta de serviço.
Para ver uma lista das suas contas de serviço, abra a página Contas de serviço na Google Cloud consola:
Registar um domínio com o Cloud Domains na consola de publicação do Knative
Para registar um domínio com o Cloud Domains a partir da consola de serviço do Knative:
Aceda à página de mapeamentos de domínios do Knative serving:
Clique em Registar domínio.
Conclua o processo de registo seguindo as instruções para Registar um domínio.
Conclua os passos descritos anteriormente nesta página para mapear o seu domínio para o Knative Serving e, em seguida, adicione registos de DNS no registador de domínios.
Resolução de problemas
Veja os problemas comuns em Resolução de problemas de domínios personalizados e TLS gerido.