Como usar domínios de teste

Saiba como acessar os serviços do Knative serving no cluster para fins de teste antes der mapear um domínio personalizado.

Por padrão, os serviços que você implanta nos clusters do Knative serving são definidos como o domínio base nip.io. Logo, se você usar o nome recomendado para o gateway de entrada, poderá testar seus serviços e enviar solicitações imediatamente sem outras configurações. 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 gratuito do DNS. 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 Knative serving.

    Acessar o Knative serving

  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 do Knative serving, default é o namespace e 11.111.11.111 é o nome. Endereço IP do seu 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 do Google Cloud Network com um endereço IP disponível publicamente.

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

Depois de conseguir o endereço IP externo do balanceador de carga, é possível usá-lo em comandos cURL ou com um serviço DNS curinga para acessar seus serviços do Knative serving.

Como usar o cURL

Use comandos cURL com o domínio base nip.io padrão para enviar solicitações ao seu 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 do Knative serving.
  • 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 do Knative serving usam o serviço de caractere curinga nip.io do DNS. 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

O Knative serving usa o ConfigMap config-domain para definir o domínio base usado por todos os serviços implantados do Knative serving. É 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 serving 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 do Knative serving implantados no 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}.