Como usar domínios de teste

Saiba como acessar os serviços de exibição do Knative no cluster para fins de teste antes de optar por mapear um domínio personalizado.

Por padrão, os serviços implantados nos clusters de exibição do Knative são definidos como o domínio base nip.io. Portanto, se você usar o nome recomendado para o gateway de entrada, poderá testar imediatamente os serviços e enviar solicitações sem configuração adicional. Por exemplo, http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io.

Observe que podem haver problemas relacionados à confiabilidade das solicitações ao usar caracteres curinga de DNS, incluindo o domínio nip.io, que é um serviço de caractere curinga DNS gratuito. Por outro lado, a configuração e o uso de um domínio personalizado para testes podem oferecer maior confiabilidade.

Também é possível acessar seus serviços por meio do endereço IP externo.

Como usar o domínio de teste nip.io

Para acessar um serviço usando o domínio base nip.io padrão, é possível localizar o URL no console do Google Cloud ou construir o URL manualmente.

Console

  1. No console do Google Cloud, acesse a página de veiculação do Knative.

    Acessar a veiculação do Knative

  2. Na lista, clique no serviço com o URL que você quer.

  3. Próximo à parte superior da página, aparece o URL.

    Por exemplo: http://my-service.default.kuberun.11.111.11.111.nip.io

    Em que my-service é o nome do serviço de exibição Knative, padrão é o namespace e 11.111.11.111 é o endereço IP do balanceador de carga externo.

Manualmente

Para construir manualmente o URL para o serviço, use o nome do serviço, o namespace em que o serviço está em execução e o endereço IP do balanceador de carga:

http://SERVICE.NAMESPACE.kuberun.EXTERNAL_IP.nip.io

Substitua:

  • SERVICE_NAME pelo nome do serviço;
  • NAMESPACE pelo namespace em que você implantou o serviço. Por padrão, os serviços são implantados no namespace default.
  • Substitua EXTERNAL_IP pelo endereço IP externo do balanceador de carga.

Por exemplo, se você tiver um serviço chamado hello no namespace default e seu endereço IP externo for 12.345.67.890, o URL poderá ser assim:

http://hello.default.kuberun.12.345.67.890.nip.io

Como usar o endereço IP externo

Outra opção é usar o endereço IP externo do balanceador de carga para acessar seus serviços com comandos cURL ou configurando manualmente um serviço curinga DNS alternativo.

Antes de começar

Como conseguir o endereço IP externo

Quando o cluster do GKE Enterprise é criado, o controlador de entrada do Istio cria um balanceador de carga de rede do Google Cloud com um endereço IP publicamente disponível.

Para configurar o acesso ao serviço com cURL ou serviço DNS, primeiro você precisa receber o endereço IP externo do serviço do balanceador de carga:

Console

Para conseguir o endereço IP externo do balanceador de carga no console do Google Cloud:
  1. Acesse a página do GKE no Console do Google Cloud:
    Acessar o GKE
  2. Clique em Serviços e entrada.
  3. 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.
  4. 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 copiar 00.000.000.000.

kubectl

Para receber 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 Anthos Service Mesh está localizada. Especifique istio-system se você instalou o Anthos 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.

Depois de conseguir o endereço IP externo do balanceador de carga, use-o em comandos cURL ou com um serviço de caractere curinga de DNS para acessar os serviços de exibição do Knative.

Como usar o cURL

É possível usar comandos cURL com o domínio base nip.io padrão para enviar solicitações ao serviço.

Especifique o endereço IP externo do balanceador de carga junto com os nomes do seu serviço e namespace no comando cURL:

curl --header 'Host: SERVICE_NAME.NAMESPACE.kuberun.EXTERNAL_IP.nip.io' EXTERNAL_IP

Substitua:

  • SERVICE_NAME pelo nome do serviço de veiculação do Knative.
  • NAMESPACE pelo namespace em que o serviço está sendo executado.
  • Substitua EXTERNAL_IP pelo endereço IP externo do balanceador de carga.

Exemplo:

curl --header 'Host: my-service.default.kuberun.12.345.67.890.nip.io' http://12.345.67.890

Como usar outros serviços de caractere curinga do DNS

Por padrão, os serviços de exibição do Knative usam o serviço de caractere curinga de DNS nip.io. No entanto, é possível optar por usar outros serviços como o sslip.io. Para configurar outros serviços curinga de DNS, primeiro você precisa conseguir o endereço IP externo do seu balanceador de carga e, em seguida, usar esse endereço IP para configurar o serviço.

Como configurar o domínio do cluster

A disponibilização do Knative usa o ConfigMap config-domain para definir o domínio base para o qual todos os serviços implantados de disponibilização do Knative usam. É possível atualizar esse ConfigMap com o console do Google Cloud ou com os comandos kubectl.

Console

Para alterar o domínio base padrão de nip.io para um dos serviços de DNS curinga no console do Google Cloud, siga estas etapas:

  1. Acesse a página Mapeamentos de domínio do Knative no console do Google Cloud:

    Acessar Mapeamentos de domínio

  2. Selecione Adicionar mapeamento > Adicionar domínio padrão do cluster.

  3. Marque a caixa de seleção ao lado de "Aplicar este mapeamento de domínio a todos os serviços de exibição Knative implantados neste cluster".

  4. Selecione o cluster no menu suspenso.

  5. No campo Domínio, insira o site DNS com o caractere curinga que você quer usar. Exemplo: sslip.io

kubectl

Para alterar o domínio base padrão de nip.io para um dos sites curinga DNS, use o comando:

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"kuberun.EXTERNAL_IP.nip.io": null, "DNS_SERVICE": ""}}'

Substituir

  • EXTERNAL_IP pelo endereço IP externo do balanceador de carga;
  • DNS_SERVICE pelo site de DNS curinga que você está usando. Exemplo: sslip.io

Seu serviço já está disponível em http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.{DNS_SERVICE}.