Configurar o Knative Serving

Saiba como configurar a instalação do Knative Serving.

Antes de começar

Tem de ter o Knative serving instalado no seu cluster do GKE. Consulte o guia de instalação para ver detalhes sobre os pré-requisitos do cluster do GKE e como instalar o Knative Serving.

Configurar a autenticação com a federação de identidade da carga de trabalho para o GKE

Pode usar a Workload Identity Federation para o GKE para autenticar os seus serviços Knative Serving em Google Cloud APIs e serviços. Tem de configurar a Workload Identity Federation para o GKE antes de implementar serviços no cluster. Caso contrário, cada serviço existente no cluster antes de ativar a Workload Identity Federation para o GKE tem de ser migrado. Saiba mais sobre a utilização da Workload Identity Federation para o GKE.

Ativar métricas com a federação de identidade de cargas de trabalho para o GKE

Para ativar métricas, como a contagem de pedidos de relatórios ou a latência de pedidos para o Google Cloud Observability, tem de definir manualmente as autorizações de escrita para o Cloud Monitoring. Para obter detalhes, consulte o artigo Ativar métricas com a Workload Identity Federation para o GKE.

Configurar HTTPS e domínios personalizados

Para ativar o HTTPS e definir um domínio personalizado, consulte as seguintes páginas:

Configurar o Cloud Service Mesh

Para configurar as opções da Cloud Service Mesh para o Knative Serving, consulte as opções do plano de controlo no cluster, incluindo como configurar uma rede interna privada.

Configurar uma rede privada interna

A implementação de serviços numa rede interna é útil para empresas que fornecem apps internas aos respetivos funcionários e para serviços usados por clientes que são executados fora do cluster de publicação do Knative. Esta configuração permite que outros recursos na sua rede comuniquem com o serviço através de um endereço IP (RFC 1918) privado e interno ao qual o público não pode aceder.

Para criar a sua rede interna, configure a Cloud Service Mesh para usar o balanceamento de carga de TCP/UDP interno em vez de um balanceador de carga de rede externo público. Em seguida, pode implementar os seus serviços de fornecimento do Knative num endereço IP interno na sua rede VPC.

Antes de começar

Para configurar o balanceador de carga interno:

  1. Ative a funcionalidade de balanceador de carga interno na Cloud Service Mesh.

    O balanceador de carga interno é uma funcionalidade opcional que pode configurar durante a instalação do Cloud Service Mesh ou atualizando a sua instalação existente.

    Siga os passos em Ativar funcionalidades opcionais no plano de controlo no cluster e certifique-se de que inclui a opção de script --option internal-load-balancer.

    Quando especifica a opção --option internal-load-balancer, o script obtém automaticamente o recurso personalizado Ativar um equilibrador de carga interno do GitHub. Se precisar de modificar o recurso personalizado, siga as instruções para usar a opção --custom_overlay.

  2. Execute o seguinte comando para monitorizar as atualizações do cluster do GKE:

    kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch

    Substitua INGRESS_NAMESPACE pelo espaço de nomes do seu serviço de entrada do Cloud Service Mesh. Especifique istio-system se instalou o Cloud Service Mesh com a respetiva configuração predefinida.

    1. Tenha em atenção a anotação cloud.google.com/load-balancer-type: Internal.
    2. Procure o valor de IP no equilibrador de carga de entrada para alterar para um endereço IP privado.
    3. Prima Ctrl+C para parar as atualizações assim que vir um endereço IP privado no campo IP.
  3. Para clusters privados em Google Cloud, tem de abrir portas. Para ver detalhes, consulte o artigo sobre como abrir portas no cluster privado na documentação do Cloud Service Mesh.

Para validar a conetividade interna após as alterações:

  1. Implemente um serviço denominado sample para o Knative Serving no espaço de nomes default:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  2. Crie 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 privado do Istio Ingress Gateway numa variável de ambiente denominada EXTERNAL_IP e num ficheiro denominado 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 espaço de nomes do seu serviço de entrada do Cloud Service Mesh. Especifique istio-system se instalou o Cloud Service Mesh com a respetiva configuração predefinida.

  4. Copie o ficheiro que contém o endereço IP para a VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Estabeleça ligação à VM através do SSH:

    gcloud compute ssh $VM
    
  6. Enquanto estiver na sessão SSH, teste o serviço de exemplo:

    curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
    

    O resultado é o seguinte:

    Hello World!
    
  7. Saia da sessão SSH:

    exit
    

Configurar um ambiente multi-inquilino

Em exemplos de utilização multi-inquilino, tem de gerir e implementar serviços de fornecimento do Knative num cluster do Google Kubernetes Engine que esteja fora do seu projeto atual. Para mais informações sobre a multilocação do GKE, consulte o artigo Multilocação de clusters.

Para saber como configurar a multi-posse para o Knative Serving, consulte o artigo Multi-posse entre projetos.

O que se segue?