Como configurar o Knative serving

Saiba como configurar sua instalação do Knative serving.

Antes de começar

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

Como configurar a autenticação com a Identidade da carga de trabalho

É possível usar a Identidade da carga de trabalho para autenticar seus serviços do Knative serving nas APIs e serviços do Google Cloud. É preciso configurar a Identidade da carga de trabalho antes de implantar serviços no cluster. Caso contrário, cada serviço que existir no cluster antes de permitir a Identidade da carga de trabalho terá que ser migrado. Saiba mais sobre como usar a Identidade da carga de trabalho.

Como ativar métricas com a Identidade da carga de trabalho

Para ativar métricas, como a contagem de solicitações de relatório ou a latência da solicitação para a observabilidade do Google Cloud, é necessário definir manualmente as permissões de gravação para o Cloud Monitoring. Para obter mais detalhes, consulte Como ativar métricas com a Identidade da carga de trabalho.

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 Knative serving, 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 sua equipe e para serviços usados por clientes executados fora do cluster do Knative serving. 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 sua rede interna, configure o Cloud Service Mesh para usar o balanceamento de carga TCP/UDP interno em vez de um balanceador de carga de rede público e externo. Em seguida, implante os serviços do Knative serving em um endereço IP interno na rede VPC.

Antes de começar

Para configurar o balanceador de carga interno:

  1. Ativar 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 atualizando sua instalação atual.

    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 com 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 Knative serving 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 com 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 do Knative serving 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