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
No console do Google Cloud, acesse a página de veiculação do Knative.
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 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
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 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:- 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 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:
Acesse a página Mapeamentos de domínio do Knative 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 de exibição Knative implantados neste 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}
.