Configurar o Knative serving

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

Para configurar o balanceador de carga interno:

  1. 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.

  2. 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.

    1. Observe a anotação cloud.google.com/load-balancer-type: Internal.
    2. Procure o valor de IP no balanceador de carga do Ingress a fim de mudar para um endereço IP particular.
    3. Pressione Ctrl+C para interromper as atualizações depois de ver um endereço IP particular no campo IP.
  3. 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:

  1. Implante um serviço chamado sample no serviço Knative no namespace default:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  2. 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
    
  3. Armazene o endereço IP particular do gateway de entrada do Istio em uma variável de ambiente chamada EXTERNAL_IP e um arquivo chamado external-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.

  4. Copie o arquivo que contém o endereço IP da VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Conecte-se à VM usando SSH:

    gcloud compute ssh $VM
    
  6. 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!
    
  7. 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.

A seguir