Como mapear domínios personalizados

É possível usar um domínio personalizado para o serviço do Cloud Run for Anthos.

Para usar um domínio personalizado em um serviço, mapeie o serviço para o domínio personalizado e atualize seus registros DNS. É possível mapear um serviço para um domínio, como example.com, ou para um subdomínio, como subdomain.example.com.

Se você estiver usando HTTPS, para que os mapeamentos de domínio funcionem, use o recurso de certificados TLS gerenciados ou forneça seus próprios certificados.

É possível mapear vários domínios personalizados para o mesmo serviço do Cloud Run for Anthos.

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 domínios, mas, se usar o Google Domains ou o Cloud Domains, o domínio será verificado automaticamente para o Cloud Run for Anthos. Portanto, não será necessário 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 Cloud Run for Anthos.

  • Se você estiver usando WebSockets no Cloud Run for Anthos, será preciso primeiro ativar o suporte a WebSocket. Basta executar o seguinte comando kubectl para criar um objeto Istio EnvoyFilter com allow_connect: true:

    cat <<EOF | kubectl apply -f -
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: allowconnect-cluser-local-gateway
      namespace: gke-system
    spec:
      workloadSelector:
        labels:
          app: cluster-local-gateway
      configPatches:
      - applyTo: NETWORK_FILTER
        match:
          listener:
            portNumber: 80
            filterChain:
              filter:
                name: "envoy.http_connection_manager"
        patch:
          operation: MERGE
          value:
            typed_config:
              "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
              http2_protocol_options:
                allow_connect: true
    EOF
    

Como mapear um domínio personalizado para um serviço

Use o console do Google Cloud ou a ferramenta da Google Cloud CLI para mapear um domínio personalizado para um serviço.

Console

  1. 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.

  2. Na página Mapeamentos de domínio, clique em Adicionar mapeamento.

  3. Na lista suspensa no formulário Adicionar mapeamento, selecione o serviço para o qual você está mapeando o domínio personalizado:

    Adicionar mapeamentos de domínio

  4. Insira o nome do 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 de example.com/users. O Cloud Run for Anthos 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.

  5. Clique em Continuar.

  6. Verifique a propriedade do domínio antes de tentar usá-lo no projeto do Google Cloud, a menos que tenha comprado seu domínio personalizado no Google Domains. Por exemplo, se você quiser mapear subdomain.example.com para um serviço, será necessário verificar a propriedade do domínio example.com. Para mais informações sobre como verificar a propriedade do domínio, consulte a Ajuda da Central do webmaster.

  7. 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.

  8. Clique em Concluído.

Linha de comando

  1. Verifique a propriedade do domínio antes de tentar usá-lo no projeto do Google Cloud, a menos que tenha comprado seu domínio personalizado no Google Domains. É possível determinar se o domínio personalizado que você quer usar foi verificado usando o seguinte comando:

    gcloud domains list-user-verified

    Se sua propriedade do domínio precisar ser verificada, abra a página de verificação da Central do webmaster:

    gcloud domains verify BASE-DOMAIN

    em que BASE-DOMAIN é o domínio de base que você quer confirmar. Por exemplo, se quiser mapear subdomain.example.com, confirme a propriedade de example.com.

    Na Central do webmaster, conclua a verificação de propriedade do domínio. Para mais informações, consulte a Ajuda da Central do webmaster.

  2. 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. 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 de example.com/users. O Cloud Run for Anthos 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.

      Opcional: se DOMAIN já estiver mapeado para outro serviço, será possível anexar a sinalização --force-override. Essa sinalização remove o mapeamento do serviço anterior e o substitui por um novo mapeamento entre DOMAIN e SERVICE.

  3. Reserve o endereço IP do balanceador de carga para o serviço de gateway de entrada do Istio 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 no registro A que você conseguiu com o comando gcloud run domain-mapping describe.
    • REGION pela região que você está usando.

Gateway de entrada do Istio do Cloud Run for Anthos

Para receber o IP externo do gateway de entrada do Istio:

kubectl get svc istio-ingress -n gke-system

A saída resultante é algo semelhante a:

NAME            TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
istio-ingress   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP

O EXTERNAL-IP do balanceador de carga é o endereço IP que você precisa usar.

Adicionar registros DNS no registrador de domínios

Depois de mapear o serviço para um domínio personalizado no Cloud Run para Anthos, você precisa atualizar os registros DNS no registrador de domínios. Por conveniência, o Cloud Run for Anthos gera e exibe os registros DNS que você precisa inserir. Adicione esses registros que apontam ao serviço Cloud Run for Anthos no registrador de domínio para que o mapeamento entre em vigor.

Se você estiver usando o Cloud DNS como provedor de DNS, consulte Como adicionar um registro.

  1. Recupere as informações de registro DNS para seus mapeamentos de domínio usando:

    Console

    1. Acesse a página de mapeamentos de domínio do Cloud Run for Anthos:

      Acessar Mapeamentos de domínio

    2. Clique no ícone de três pontos à direita do serviço e, em seguida, clique em REGISTROS DNS para exibir todos os registros:

    selecionar registros DNS

    Linha de comando

    gcloud run domain-mappings describe --domain DOMAIN

    Substitua DOMAIN pelo seu domínio personalizado, por exemplo, example.com ou subdomain.example.com.

    Você precisa de todos os registros retornados no cabeçalho resourceRecords.

  2. Faça login na conta do registro de domínios e abra a página de configuração de DNS.

  3. 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 Cloud Run for Anthos.

  4. Quando você adicionar cada um dos registros DNS acima à conta no provedor de DNS:

    • selecione o tipo retornado no registro de DNS na etapa anterior: A, ou AAAA ou CNAME;
    • use o nome www para mapear para www.example.com;
    • use o nome @ para mapear example.com.
  5. 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ão dig on-line, para confirmar se os registros de DNS foram atualizados.

  6. Teste navegando até o serviço no novo URL, por exemplo, https://www.example.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

  1. Navegue até este endereço no seu navegador da Web:

    https://search.google.com/search-console/welcome

  2. Em Propriedades, clique no domínio para o qual você quer adicionar um usuário ou uma conta de serviço.

  3. 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 contas de serviço, abra a página "Contas de serviço" no Console do Google Cloud:

    Acessar a página "Contas de serviço"

Como registrar um domínio com o Cloud Domains no console do Cloud Run for Anthos

Para registrar um domínio com o Cloud Domains no console do Cloud Run for Anthos, siga estas etapas:

  1. Acesse a página de mapeamentos de domínio do Cloud Run for Anthos:

    Acessar Mapeamentos de domínio

  2. Clique em Registrar domínio.

  3. Conclua o processo de registro seguindo as instruções em Como registrar um domínio.

  4. Mapeie o domínio para o Cloud Run for Anthos e adicione registros DNS ao registrador de domínios.