Configurar Knative Serving

Consulta cómo configurar tu instalación de Knative Serving.

Antes de empezar

Debes tener Knative Serving instalado en tu clúster de GKE. Consulta la guía de instalación para obtener información sobre los requisitos previos de los clústeres de GKE y sobre cómo instalar Knative Serving.

Configurar la autenticación con Workload Identity Federation para GKE

Puedes usar Workload Identity Federation for GKE para autenticar tus servicios de Knative Serving en APIs y servicios de Google Cloud . Debes configurar Workload Identity Federation para GKE antes de implementar servicios en tu clúster. De lo contrario, tendrás que migrar cada servicio que haya en tu clúster antes de habilitar Workload Identity Federation para GKE. Más información sobre cómo usar Workload Identity Federation para GKE

Habilitar métricas con Workload Identity Federation para GKE

Para habilitar métricas, como el recuento de solicitudes de informes o la latencia de las solicitudes en Google Cloud Observability, debes definir manualmente los permisos de escritura de Cloud Monitoring. Para obtener más información, consulta Habilitar métricas con Workload Identity Federation para GKE.

Configurar HTTPS y dominios personalizados

Para habilitar HTTPS y definir un dominio personalizado, consulta las siguientes páginas:

Configurar Cloud Service Mesh

Para configurar las opciones de Cloud Service Mesh para Knative Serving, consulta las opciones del plano de control en el clúster, incluido cómo configurar una red interna privada.

Configurar una red interna privada

Implementar servicios en una red interna es útil para las empresas que proporcionan aplicaciones internas a su personal y para los servicios que utilizan clientes que se ejecutan fuera del clúster de servicio de Knative. Esta configuración permite que otros recursos de tu red se comuniquen con el servicio mediante una dirección IP privada e interna (RFC 1918) a la que no puede acceder el público.

Para crear tu red interna, configura Cloud Service Mesh para que use el balanceo de carga TCP/UDP interno en lugar de un balanceador de carga de red externo público. Después, puedes desplegar tus servicios de Knative Serving en una dirección IP interna de tu red de VPC.

Antes de empezar

Para configurar el balanceador de carga interno, sigue estos pasos:

  1. Habilita la función de balanceador de carga interno en Cloud Service Mesh.

    El balanceador de carga interno es una función opcional que puedes configurar durante la instalación de Cloud Service Mesh o actualizando la instalación que ya tengas.

    Sigue los pasos que se indican en Habilitar funciones opcionales en el plano de control en clústeres y asegúrate de incluir la opción de secuencia de comandos --option internal-load-balancer.

    Si especificas la opción --option internal-load-balancer, la secuencia de comandos obtiene automáticamente el recurso personalizado Habilitar un balanceador de carga interno de GitHub. Si necesita modificar el recurso personalizado, siga las instrucciones para usar la opción --custom_overlay.

  2. Ejecuta el siguiente comando para ver las actualizaciones de tu clúster de GKE:

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

    Sustituye INGRESS_NAMESPACE por el espacio de nombres de tu servicio de entrada de Cloud Service Mesh. Especifica istio-system si has instalado Cloud Service Mesh con su configuración predeterminada.

    1. Fíjate en la anotación cloud.google.com/load-balancer-type: Internal.
    2. Comprueba que el valor de IP del balanceador de carga de entrada cambia a una dirección IP privada.
    3. Pulsa Ctrl+C para detener las actualizaciones cuando veas una dirección IP privada en el campo IP.
  3. En los clústeres privados on Google Cloud, debes abrir puertos. Para obtener más información, consulta el artículo sobre cómo abrir puertos en un clúster privado de la documentación de Cloud Service Mesh.

Para verificar la conectividad interna después de hacer los cambios, sigue estos pasos:

  1. Despliega un servicio llamado sample en Knative serving en el espacio de nombres default:

    gcloud run deploy sample \
    --image gcr.io/knative-samples/helloworld \
    --namespace default
    --platform gke
    
  2. Crea una máquina virtual (VM) de Compute Engine en la misma zona que el clúster de GKE:

    VM=cloudrun-gke-ilb-tutorial-vm
    
    gcloud compute instances create $VM
    
  3. Almacena la dirección IP privada de Istio Ingress Gateway en una variable de entorno llamada EXTERNAL_IP y en un archivo llamado 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)

    Sustituye INGRESS_NAMESPACE por el espacio de nombres de tu servicio de entrada de Cloud Service Mesh. Especifica istio-system si has instalado Cloud Service Mesh con su configuración predeterminada.

  4. Copia el archivo que contiene la dirección IP en la VM:

    gcloud compute scp external-ip.txt $VM:~
    
  5. Conéctate a la máquina virtual con SSH:

    gcloud compute ssh $VM
    
  6. Mientras estés en la sesión SSH, prueba el servicio de ejemplo:

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

    El resultado es el siguiente:

    Hello World!
    
  7. Cierra la sesión SSH:

    exit
    

Configurar un entorno multicliente

En los casos prácticos de multitenancy, tendrás que gestionar y desplegar servicios de Knative Serving en un clúster de Google Kubernetes Engine que esté fuera de tu proyecto actual. Para obtener más información sobre la arquitectura multi-tenant de GKE, consulta Clústeres con varios propietarios.

Para saber cómo configurar la propiedad múltiple en Knative Serving, consulta Propiedad múltiple entre proyectos.

Siguientes pasos