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 a guia de instalação para mais detalhes sobre Pré-requisitos do 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 às 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 relatar a contagem de solicitações ou a latência das solicitações, Google Cloud Observability, será preciso definir manualmente as permissões de gravação para 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 a Opções de plano de controle no cluster, incluindo como configure uma rede privada e interna.

Como configurar uma rede privada e interna

Implantar serviços em uma rede interna é útil para empresas que fornecem apps internos à equipe e para serviços usados 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 Balanceamento de carga TCP/UDP interno em vez de um balanceador de carga de rede público externo. Depois disso, é possível implantar serviços do Knative serving em um endereço IP interno na sua 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 ao atualizar e instalação.

    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 seu serviço de entrada do Cloud Service Mesh. Especifique istio-system se você tiver instalado 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 Knative serving na 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 seu serviço de entrada do Cloud Service Mesh. Especifique istio-system se você tiver instalado 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 do Knative serving a um cluster do Google Kubernetes Engine que está 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