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
No console do Google Cloud, acesse a página Knative serving.
Na lista, clique no serviço com o URL que você quer.
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
Certifique-se de que as ferramentas de linha de comando kubectl e a Google Cloud CLI estejam instaladas e atualizadas:
Você precisa ter pelo menos o papel de Desenvolvedor do Kubernetes Engine de gerenciamento de identidade e acesso ou permissões equivalentes.
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:- Acesse a página do GKE no Console do Google Cloud:
Acessar o GKE - Clique em Serviços e entrada.
- 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
. - 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 copiar00.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:
Acesse a página Mapeamentos de domínio do Knative serving no console do Google Cloud:
Selecione Adicionar mapeamento > Adicionar domínio padrão do cluster.
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".
Selecione o cluster no menu suspenso.
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}
.