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
Na Google Cloud consola, aceda à página Knative serving.
Na lista, clique no serviço para o qual quer obter o URL.
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
Certifique-se de que as ferramentas de linha de comandos da CLI gcloud e do kubectl estão instaladas e atualizadas:
Tem de ter, pelo menos, a função de gestão de identidades e acessos Kubernetes Engine Developer ou autorizações equivalentes.
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:- Aceda à página do GKE na Google Cloud consola:
Aceder ao GKE - Clique em Serviços e entrada.
- 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
. - 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 copiar00.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-domain
ConfigMap 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 :
Aceda à página Mapeamentos de domínios do Knative serving na Google Cloud consola:
Selecione Adicionar mapeamento > Adicionar domínio predefinido do cluster
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".
Selecione o cluster no menu pendente.
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}
.