Saiba como instalar e configurar o Knative serving.
Antes de começar
O Knative serving precisa estar instalado no cluster do GKE. Consulte o guia de instalação para conferir detalhes sobre os pré-requisitos do cluster do GKE e como instalar o Knative serving.
Como configurar a autenticação com a federação de identidade da carga de trabalho para o GKE
É possível usar a federação de identidade da carga de trabalho do GKE para autenticar seus serviços de fornecimento do Knative nas APIs e serviços do Google Cloud. É preciso configurar a Federação de Identidade da Carga de Trabalho do GKE antes de implantar serviços no cluster. Caso contrário, cada serviço que existir no cluster antes de ativar a Federação de Identidade da Carga de Trabalho do GKE precisa ser migrado. Saiba como usar a Federação de identidade da carga de trabalho para o GKE.
Como ativar métricas com a federação de identidade da carga de trabalho para o GKE
Para ativar métricas, como a geração de relatórios de contagem de solicitações ou de latência para o Google Cloud Observability, é necessário definir manualmente as permissões de gravação do Cloud Monitoring. Para mais detalhes, consulte Como ativar métricas com a Federação de identidade da carga de trabalho para o GKE.
Como configurar HTTPS e domínios personalizados
Para ativar o HTTPS e definir um domínio personalizado, consulte as seguintes páginas:
Como configurar o Cloud Service Mesh
Para configurar as opções do Cloud Service Mesh para o serviço Knative, consulte as Opções do plano de controle no cluster, incluindo como configurar uma rede interna particular.
Como configurar uma rede privada e interna
A implantação de serviços em uma rede interna é útil para empresas que fornecem apps internos para a equipe e para serviços usados por clientes executados fora do cluster de serviço do Knative. Essa configuração permite que outros recursos na rede se comuniquem com o serviço usando um endereço IP interno particular (RFC 1918) que não possa ser acessado pelo público.
Para criar a rede interna, configure o Cloud Service Mesh para usar balanceamento de carga TCP/UDP interno em vez de um balanceador de carga de rede externo e público. Em seguida, implante os serviços de fornecimento do Knative em um endereço IP interno na sua rede VPC.
Antes de começar
- Você precisa ter permissões
admin
no cluster. - Se você tiver configurado um domínio personalizado, será necessário desativar o recurso TLS gerenciado, porque o TLS gerenciado no Knative serving atualmente não é compatível com o balanceador de carga interno.
- Existe suporte somente para as versões 310.0 ou mais recentes da Google Cloud CLI. Para detalhes sobre como configurar suas ferramentas de linha de comando, consulte
Para configurar o balanceador de carga interno:
Ative o recurso de balanceador de carga interno no Cloud Service Mesh.
O balanceador de carga interno é um recurso opcional que pode ser configurado durante a instalação do Cloud Service Mesh ou ao atualizar a instalação existente.
Siga as etapas em Como ativar recursos opcionais no plano de controle no cluster e inclua a opção de script
--option internal-load-balancer
.Quando você especifica a opção
--option internal-load-balancer
, o script busca automaticamente o recurso personalizado Ativar um balanceador de carga interno no GitHub. Se você precisar modificar o recurso personalizado, siga as instruções para usar a opção--custom_overlay
.Execute o seguinte comando para acompanhar as atualizações do cluster do GKE:
kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch
Substitua INGRESS_NAMESPACE pelo namespace do serviço de entrada do Cloud Service Mesh. Especifique
istio-system
se você instalou o Cloud Service Mesh usando a configuração padrão.- Observe a anotação
cloud.google.com/load-balancer-type: Internal
. - Procure o valor de
IP
no balanceador de carga do Ingress a fim de mudar para um endereço IP particular. - Pressione
Ctrl+C
para interromper as atualizações depois de ver um endereço IP particular no campoIP
.
- Observe a anotação
Para clusters particulares no Google Cloud, é preciso abrir portas. Para mais detalhes, consulte como abrir portas no cluster particular na documentação do Cloud Service Mesh.
Para verificar a conectividade interna após as alterações:
Implante um serviço chamado
sample
no serviço Knative no namespacedefault
:gcloud run deploy sample \ --image gcr.io/knative-samples/helloworld \ --namespace default --platform gke
Para criar uma máquina virtual (VM) do Compute Engine na mesma zona que o cluster do GKE:
VM=cloudrun-gke-ilb-tutorial-vm gcloud compute instances create $VM
Armazene o endereço IP particular do gateway de entrada do Istio em uma variável de ambiente chamada
EXTERNAL_IP
e um arquivo chamadoexternal-ip.txt
:export EXTERNAL_IP=$(kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
Substitua INGRESS_NAMESPACE pelo namespace do serviço de entrada do Cloud Service Mesh. Especifique
istio-system
se você instalou o Cloud Service Mesh usando a configuração padrão.Copie o arquivo que contém o endereço IP da VM:
gcloud compute scp external-ip.txt $VM:~
Conecte-se à VM usando SSH:
gcloud compute ssh $VM
Durante a sessão SSH, teste o serviço de amostra:
curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
A saída é a seguinte:
Hello World!
Saia da sessão SSH:
exit
Como configurar um ambiente multilocatário
Em casos de uso multilocatários, você precisará gerenciar e implantar serviços de fornecimento do Knative em um cluster do Google Kubernetes Engine que esteja fora do projeto atual. Para mais informações sobre a multilocação do GKE, consulte Multilocação de cluster.
Para saber como configurar a multilocação para o Knative serving, consulte Multilocação entre projetos.