Usar domínios de teste

Saiba como aceder aos serviços de fornecimento do Knative no seu cluster para fins de teste antes de optar por mapear um domínio personalizado.

Por predefinição, os serviços que implementa nos seus clusters do Knative Serving são definidos para o domínio base nip.io. Por conseguinte, se usar o nome recomendado para o gateway de entrada, pode testar imediatamente os seus serviços e enviar pedidos sem configuração adicional. Por exemplo: http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io.

Tenha em atenção que podem existir problemas relacionados com a fiabilidade dos pedidos quando usa carateres universais DNS, incluindo o domínio nip.io, que é um serviço de carateres universais DNS gratuito. Por outro lado, a configuração e a utilização de um domínio personalizado para testes podem oferecer uma fiabilidade acrescida.

Opcionalmente, também pode aceder aos seus serviços através do endereço IP externo.

Usar o domínio de teste nip.io

Para aceder a um serviço através do domínio base nip.io predefinido, pode localizar o URL na consola Google Cloud ou criá-lo manualmente.

Consola

  1. Na Google Cloud consola, aceda à página Knative serving.

    Aceda ao Knative serving

  2. Na lista, clique no serviço para o qual quer obter o URL.

  3. O URL é apresentado junto à parte superior da página.

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

    Em que my-service é o nome do serviço de fornecimento do Knative, default é o espaço de nomes e 11.111.11.111 é o endereço IP do seu equilibrador de carga externo.

Manualmente

Para criar manualmente o URL para o seu serviço, usa o nome do serviço, o espaço de nomes no qual esse serviço está a ser executado e o endereço IP do balanceador de carga:

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

Substituição:

  • SERVICE_NAME com o nome do seu serviço.
  • NAMESPACE com o espaço de nomes onde implementou o serviço. Por predefinição, os serviços são implementados no espaço de nomes default.
  • EXTERNAL_IP com o endereço IP externo do seu balanceador de carga.

Por exemplo, se tiver um serviço denominado hello no espaço de nomes default e o seu endereço IP externo for 12.345.67.890, o URL pode ter o seguinte aspeto:

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

Usar o endereço IP externo

Opcionalmente, pode usar o endereço IP externo do seu equilibrador de carga para aceder aos seus serviços através de comandos cURL ou configurando manualmente um serviço de caráter universal de DNS alternativo.

Antes de começar

Obter o endereço IP externo

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

Para configurar o acesso ao seu serviço com o cURL ou um serviço DNS, tem primeiro de obter o endereço IP externo do serviço de balanceamento de carga:

Consola

Para obter o endereço IP externo do balanceador de carga a partir da Google Cloud consola:
  1. Aceda à página do GKE na Google Cloud consola:
    Aceder ao 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 vai ser Balanceador de carga externo e o Nome vai ser istio-ingressgateway.
  4. 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 copiar 00.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.

Depois de obter o endereço IP externo do seu equilibrador de carga, pode usá-lo em comandos cURL ou com um serviço de caráter universal de DNS para aceder aos seus serviços de fornecimento do Knative.

A usar cURL

Pode usar comandos cURL com o domínio base nip.io predefinido para enviar pedidos para o seu serviço.

Especifica o endereço IP externo do balanceador de carga juntamente com os nomes do serviço e do espaço de nomes no comando cURL:

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

Substituição:

  • SERVICE_NAME com o nome do seu serviço Knative serving.
  • NAMESPACE com o espaço de nomes no qual o seu serviço está a ser executado.
  • EXTERNAL_IP com o endereço IP externo do seu balanceador de carga.

Exemplo:

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

Usar outros serviços de caráter universal de DNS

Por predefinição, os seus serviços Knative Serving usam o serviço de carateres universais DNS nip.io. No entanto, pode optar por usar outros serviços, como o sslip.io. Para configurar outros serviços de caráter universal de DNS, tem de obter primeiro o endereço IP externo do seu equilibrador de carga e, em seguida, usar esse endereço IP para configurar o serviço de caráter universal de DNS.

Configurar o domínio do cluster

O Knative Serving usa o config-domainConfigMap para definir o domínio base que todos os seus serviços do Knative Serving implementados usam. Pode atualizar esse ConfigMap através da Google Cloud consola ou com comandos kubectl.

Consola

Para alterar o domínio base predefinido de nip.io para um dos serviços de carateres universais de DNS na consola Google Cloud :

  1. Aceda à página Mapeamentos de domínios do Knative serving na Google Cloud consola:

    Aceda a Mapeamentos de domínios

  2. Selecione Adicionar mapeamento > Adicionar domínio predefinido do cluster

  3. Selecione a caixa de verificação junto a "Aplicar este mapeamento de domínios a todos os serviços de publicação do Knative implementados neste cluster".

  4. Selecione o cluster no menu pendente.

  5. No campo Domínio, introduza o site de DNS com carateres universais que quer usar. Por exemplo: sslip.io

kubectl

Para alterar o domínio base predefinido de nip.io para um dos sites com carateres universais de 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 com o endereço IP externo do balanceador de carga.
  • DNS_SERVICE com o site DNS de caráter universal que está a usar. Por exemplo: sslip.io

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