Configure os domínios personalizados que serão usados para acessar os serviços de
serviço do Knative. É possível mapear um ou mais domínios personalizados para um serviço individual ou um
único domínio para o cluster usado por todos os serviços. Seu 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 padrão, os serviços que você implanta nos clusters do Knative serving são
definidos como o domínio base nip.io
. Isso permite que você teste imediatamente seus
serviços em um URL como:
http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
Saiba mais sobre domínios de teste.
Antes de começar
É necessário ter ou comprar o domínio que você quer mapear para os serviços. É possível usar qualquer registrador de nomes de domínio, mas, se usar o Cloud Domains, o domínio será verificado automaticamente para o Knative serving. Assim, não será preciso passar pelo processo de verificação do domínio.
Se você quiser registrar um domínio com o Cloud Domains, consulte Como registrar um domínio com o Cloud Domains no console do Knative serving.
Você precisa ter pelo menos o papel de Desenvolvedor do Kubernetes Engine de gerenciamento de identidade e acesso ou permissões equivalentes.
Para ativar o HTTPS com seus mapeamentos de domínio personalizados, você precisa configurar certificados TLS gerenciados ou configurar seus próprios certificados.
Para mapear um domínio personalizado para o cluster ou os serviços em uma rede interna e particular, é necessário desativar os certificados TLS gerenciados.
Como mapear um domínio personalizado
Use o Console do Google Cloud ou as ferramentas de linha de comando para mapear seu domínio personalizado.
Geralmente, para configurar um domínio personalizado:
- Opcional: reserve o endereço IP do seu balanceador de carga.
- Mapeie seus serviços ou o cluster para o domínio personalizado no Knative serving.
- Atualize seus registros de DNS no registrador de domínios.
Reservar o endereço IP do balanceador de carga
Quando o serviço Knative é instalado, o controlador de entrada do Istio cria um balanceador de carga com um endereço IP disponível.
Dependendo do cluster do GKE, talvez seja necessário reservar o endereço IP do balanceador de carga para o controlador de entrada do Istio:
- Fora do Google Cloud
- Consulte a documentação do ambiente em que você executa o cluster do GKE para determinar como os endereços IP são gerenciados e se o endereço IP do balanceador de carga é estático. Consulte também as páginas de configuração do cluster do GKE. Por exemplo, dependendo de como você configurou o balanceamento de carga para o Google Distributed Cloud, talvez você já tenha reservado esses endereços IP.
- No Google Cloud
É necessário reservar o endereço IP externo do balanceador de carga para garantir que ele permaneça o mesmo se o serviço de entrada for excluído. Dependendo da configuração do cluster, o endereço IP está disponível externamente ou apenas internamente, por exemplo, clusters particulares.
- Balanceadores de carga internos no Google Cloud
- Consulte a página a seguir para detalhes sobre como reservar o endereço IP do balanceador de carga interno: como reservar um endereço IP interno estático
- Balanceadores de carga externos no Google Cloud
- Para reservar o endereço IP do balanceador de carga externo:
Consiga o endereço IP do balanceador de carga:
Console
Para conseguir o endereço IP externo do balanceador de carga no console do Google Cloud:- Acesse a página do GKE no Console do Google Cloud:
Acessar o GKE - Clique em Serviços e entrada.
- Identifique o serviço que é a entrada do Istio
do seu cluster. O Tipo do serviço será Balanceador de carga
externo e o Nome será
istio-ingressgateway
. - Depois de encontrar o serviço de entrada do Istio do cluster, copie o
Endpoint dele. Esse será o endereço IP sem o número da
porta. Por exemplo, é possível ver
00.000.000.000:11
listado como um endpoint, mas só precisa copiar00.000.000.000
.
kubectl
Para conseguir 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 namespace em que a entrada do Cloud Service Mesh está localizada. Especifique
istio-system
se você instalou o Cloud Service Mesh usando a configuração padrão.A resposta resultante será semelhante a:
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 endereço IP externo do balanceador de carga.
- Acesse a página do GKE no Console do Google Cloud:
Reserve o endereço IP como um IP estático:
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
Substitua:
- ADDRESS-NAME pelo nome que você quer fornecer ao seu IP estático.
- EXTERNAL-IP pelo endereço IP externo do balanceador de carga que você recebeu na etapa anterior.
- REGION: pela região em que o cluster está localizado.
Depois de conseguir o endereço IP do seu balanceador de carga, será possível usá-lo para mapear seu domínio personalizado:
Serviços de mapeamento
Escolha um dos métodos a seguir para mapear seu domínio personalizado para um serviço de veiculação do Knative. Cada serviço individual pode ser mapeado para vários domínios.
Console
Abra a página de mapeamentos de domínio no console do Google Cloud:
Acessar Mapeamentos de domínio
Se a sua janela de exibição for muito pequena, o botão Mapeamento de domínios personalizados não será exibido, e você precisará clicar no ícone de três pontos verticais 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. É possível mapear vários domínios para cada serviço.
Na lista suspensa no formulário Adicionar mapeamento, selecione o serviço para o qual você quer mapear seu domínio personalizado:
Insira o nome do domínio Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só permite mapear um domínio para/
, não para um caminho base específico. Portanto, qualquer roteamento de caminho precisa ser processado usando um roteador dentro do contêiner do serviço ou usando o Firebase Hosting. -
Não é possível mapear o 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}
. Portanto, se você tiver um serviço emtest.default.your-domain.com
, não crie um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
Clique em Continuar.
Atualize seus registros DNS no site de registro de domínios usando os registros DNS exibidos na última etapa. É possível exibir os registros a qualquer momento clicando em Registros DNS no menu de ação "…" para um mapeamento de domínio.
Clique em Concluído.
gcloud
Mapeie seu serviço para o domínio personalizado:
gcloud run domain-mappings create --service SERVICE --domain DOMAIN
Substitua:
- SERVICE pelo nome do serviço.
- DOMAIN pelo seu domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só permite mapear um domínio para/
, não para um caminho base específico. Portanto, qualquer roteamento de caminho precisa ser processado usando um roteador dentro do contêiner do serviço ou usando o Firebase Hosting. -
Não é possível mapear o 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}
. Portanto, se você tiver um serviço emtest.default.your-domain.com
, não crie um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
Agora que seu domínio personalizado está mapeado para a veiculação do Knative, é necessário adicionar registros DNS no registrador de domínios.
Como mapear clusters
Escolha um dos seguintes métodos para mapear seu domínio personalizado no cluster:
Console
Abra a página de mapeamentos de domínio no console do Google Cloud:
Acessar Mapeamentos de domínio
Se a sua janela de exibição for muito pequena, o botão Mapeamento de domínios personalizados não será exibido, e você precisará clicar no ícone de três pontos verticais no canto direito da página.
Clique em Adicionar mapeamento e selecione Adicionar domínio padrão para mapear um domínio para todos os serviços no cluster. Por padrão, os novos serviços que você implanta usam o domínio mapeado.
Clique na caixa de seleção para aplicar o novo mapeamento de domínio a todos os serviços no cluster.
Na lista suspensa no formulário Adicionar mapeamento, selecione o cluster em que você quer mapear o domínio personalizado:
Insira o nome do domínio Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só permite mapear um domínio para/
, não para um caminho base específico. Portanto, qualquer roteamento de caminho precisa ser processado usando um roteador dentro do contêiner do serviço ou usando o Firebase Hosting. -
Não é possível mapear o 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}
. Portanto, se você tiver um serviço emtest.default.your-domain.com
, não crie um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
Clique em Continuar.
Atualize seus registros DNS no site de registro de domínios usando os registros DNS exibidos na última etapa. É possível exibir os registros a qualquer momento clicando em Registros DNS no menu de ação "…" para um mapeamento de domínio.
Clique em Concluído.
kubectl
Execute o seguinte comando para remover o domínio base do ConfigMap
config-domain
e substituí-lo pelo domínio personalizado:kubectl patch configmap config-domain --namespace knative-serving --patch \ '{"data": {"nip.io": null, "DOMAIN": ""}}'
Substitua DOMAIN pelo domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
. Requisitos de domínio:- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
users
é o caminho base deyour-domain.com/users
. O Knative serving só permite mapear um domínio para/
, não para um caminho base específico. Portanto, qualquer roteamento de caminho precisa ser processado usando um roteador dentro do contêiner do serviço ou usando o Firebase Hosting. -
Não é possível mapear o 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}
. Portanto, se você tiver um serviço emtest.default.your-domain.com
, não crie um mapeamento de domínio para o mesmo subdomíniotest.default.
your-domain.com
.
- O mapeamento de caminho base não é compatível. O termo caminho base
refere-se ao nome do caminho do URL que vem depois do nome do domínio. Por exemplo,
Agora que seu domínio personalizado está mapeado para a veiculação do Knative, é necessário adicionar registros DNS no registrador de domínios.
Adicionar registros DNS no registrador de domínios
Depois de mapear o serviço para um domínio personalizado no Knative serving, você precisará atualizar os registros DNS no registrador de domínios. Para facilitar, o Knative serving gera e mostra os registros DNS que você precisa inserir. Adicione esses registros que apontam ao serviço Knative serving no registrador de domínios para que o mapeamento entre em vigor.
Se você estiver usando o Cloud DNS como provedor de DNS, consulte Como adicionar um registro.
Recupere as informações de registro DNS para seus mapeamentos de domínio usando:
Console
Acesse a página de mapeamentos de domínio do Knative serving:
Clique no ícone de três pontos à direita do serviço e, em seguida, clique em REGISTROS DNS para exibir todos os registros:
gcloud
gcloud run domain-mappings describe --domain DOMAIN
Substitua DOMAIN pelo domínio personalizado. Por exemplo,
your-domain.com
ousubdomain.your-domain.com
.Você precisa de todos os registros retornados no cabeçalho
resourceRecords
.Faça login na conta do registro de domínios e abra a página de configuração de DNS.
Localize a seção de registros de host da página de configuração do domínio e adicione cada um dos registros de recurso que você recebeu ao mapear o domínio para o serviço do Knative serving.
Quando você adiciona cada um dos registros de DNS acima à conta no provedor de DNS:
- selecione o tipo retornado no registro de DNS na etapa anterior:
A
, ouAAAA
ouCNAME
; - use o nome
www
para mapear parawww.your-domain.com
; - use o nome
@
para mapearyour-domain.com
. - Use o
caractere curinga
*
para mapear para*.your-domain.com
.
- selecione o tipo retornado no registro de DNS na etapa anterior:
Salve as alterações na página de configuração do DNS da conta do domínio. Na maioria dos casos, leva apenas alguns minutos para que essas alterações entrem em vigor. No entanto, em alguns casos, pode levar várias horas, dependendo do registrador e do time to live (TTL) (em inglês) de qualquer registro DNS anterior para seu domínio. É possível usar uma ferramenta
dig
, como esta versãodig
on-line, para confirmar se os registros de DNS foram atualizados.Teste navegando até o serviço no novo URL, por exemplo,
https://www.your-domain.com
. Pode levar alguns minutos para que o certificado SSL gerenciado seja emitido.
Como adicionar proprietários dos domínios verificados a outros usuários ou contas de serviço
Quando um usuário verifica um domínio, esse domínio só é verificado para a conta desse usuário. Isso significa que somente ele pode adicionar mapeamentos que usam esse mesmo domínio. Assim, para permitir que outros usuários adicionem mapeamentos, é preciso adicioná-los como proprietários verificados.
Se você precisar adicionar proprietários verificados do seu domínio a outros usuários ou contas de serviço, poderá adicionar permissão por meio da página do Search Console
Navegue até este endereço no seu navegador da Web:
Em Propriedades, clique no domínio em que você quer adicionar um usuário ou uma conta de serviço.
Vá até a lista de Proprietários verificados, clique em Adicionar um proprietário e insira o e-mail da Conta do Google ou o ID da conta de serviço.
Para ver uma lista das suas contas de serviço, abra a página "Contas de serviço" no Console do Cloud:
Como registrar um domínio com o Cloud Domains no console de veiculação do Knative
Para registrar um domínio com o Cloud Domains no console de veiculação do Knative:
Acesse a página de mapeamentos de domínio do Knative serving:
Clique em Registrar domínio.
Conclua o processo de registro seguindo as instruções em Como registrar um domínio.
Conclua as etapas anteriores nesta página para Mapear seu domínio para o Knative serving e adicionar registros DNS ao registrador de domínios.
Solução de problemas
Veja os problemas comuns em Solução de problemas de domínios personalizados e TLS gerenciado.