Aprende a configurar tu instalación de Knative serving.
Antes de comenzar
Debes tener Knative serving instalado en tu clúster de GKE. Consulta la guía de instalación para obtener detalles sobre Requisitos previos del clúster de GKE y cómo instalar Knative serving.
Configura la autenticación con Workload Identity
Puedes usar Workload Identity para autenticar tus servicios de Knative serving a las APIs y los servicios de Google Cloud. Debes configurar Workload Identity antes de implementar los servicios en el clúster; de lo contrario, cada servicio que exista en el clúster antes de habilitar Workload Identity debe migrarse. Obtén más información para usar Workload Identity.
Habilita métricas con Workload Identity
Para habilitar métricas, como el recuento de solicitudes de informes o la latencia de las solicitudes, Google Cloud Observability, debes configurar manualmente los permisos de escritura para Cloud Monitoring Para obtener más información, consulta Habilita métricas con Workload Identity.
Configura HTTPS y dominios personalizados
Para habilitar HTTPS y configurar un dominio personalizado, consulta las siguientes páginas:
Configura Cloud Service Mesh
Si deseas configurar las opciones de la malla de servicios de Cloud para Knative serving, consulta la Opciones del plano de control en el clúster, incluido el instructivo configurar una red interna privada.
Configura una red privada interna
Implementar servicios en una red interna es útil para las empresas que proporcionan apps internas al personal y para los servicios que usan que se ejecutan fuera del clúster de Knative serving. Esta configuración permite que otros recursos de la red se comuniquen con el servicio mediante una dirección IP privada interna (RFC 1918) a la que el público no puede acceder.
Para crear tu red interna, configura Cloud Service Mesh Balanceo de cargas de TCP/UDP interno en lugar de un balanceador de cargas de red público y externo. Luego, puedes implementar tu Knative serving en una dirección IP interna dentro de tu Red de VPC.
Antes de comenzar
- Debes tener permisos
admin
en el clúster. - Si configuraste un dominio personalizado, debes inhabilitar la función de TLS administrada ya que, actualmente, TLS administrado en Knative serving no es compatible balanceador de cargas interno.
- Solo se admiten las versiones 310.0 o posteriores de Google Cloud CLI. Para obtener detalles sobre la configuración de las herramientas de línea de comandos, consulta
Para configurar el balanceador de cargas interno, haz lo siguiente:
Habilitar la función de balanceador de cargas interno en Cloud Service Mesh
El balanceador de cargas interno es una función opcional que puedes configurar durante la instalación de Cloud Service Mesh o actualizando tu instalación.
Sigue los pasos de Habilita funciones opcionales en el plano de control en el clúster y asegúrate de incluir la opción de secuencia de comandos
--option internal-load-balancer
.Cuando especificas la opción
--option internal-load-balancer
, la secuencia de comandos recupera de forma automática el recurso personalizado Habilitar un balanceador de cargas interno de GitHub. Si necesitas modificar el recurso personalizado, sigue las instrucciones para usar la opción--custom_overlay
en su lugar.Ejecuta el siguiente comando para ver las actualizaciones en el clúster de GKE:
kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway --watch
Reemplaza INGRESS_NAMESPACE por el espacio de nombres de tu Servicio de entrada de la malla de servicios de Cloud. Especifica
istio-system
si instalaste Cloud Service Mesh con su configuración predeterminada.- Anota la anotación
cloud.google.com/load-balancer-type: Internal
. - Busca el valor de la
IP
en el balanceador de cargas de Ingress para cambiar a una dirección IP privada. - Presiona
Ctrl+C
para detener las actualizaciones cuando veas una dirección IP privada en el campoIP
.
- Anota la anotación
Para los clústeres privados en Google Cloud, debes abrir los puertos. Para obtener más información, consulta puertos de apertura en tu clúster privado en la documentación de Cloud Service Mesh.
Para verificar la conectividad interna después de realizar los cambios, sigue estos pasos:
Implementa un servicio llamado
sample
en Knative serving en la Espacio de nombresdefault
:gcloud run deploy sample \ --image gcr.io/knative-samples/helloworld \ --namespace default --platform gke
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
Almacena la dirección IP privada de la puerta de enlace de entrada de Istio en una variable de entorno llamada
EXTERNAL_IP
y un archivo llamadoexternal-ip.txt
:export EXTERNAL_IP=$(kubectl -n INGRESS_NAMESPACE get svc istio-ingressgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
Reemplaza INGRESS_NAMESPACE por el espacio de nombres de tu Servicio de entrada de la malla de servicios de Cloud. Especifica
istio-system
si instalaste Cloud Service Mesh con su configuración predeterminada.Copia el archivo que contiene la dirección IP en la VM:
gcloud compute scp external-ip.txt $VM:~
Conéctate a la VM mediante SSH:
gcloud compute ssh $VM
Mientras estás en la sesión SSH, prueba el servicio de muestra:
curl -s -w'\n' -H Host:sample.default.nip.io $(cat external-ip.txt)
Este es el resultado:
Hello World!
Sal de la sesión de SSH:
exit
Configura un entorno de multiusuario
En los casos de uso multiusuario, deberás implementar y administrar Knative serving a un clúster de Google Kubernetes Engine que es fuera de tu proyecto actual. Para obtener más información sobre la arquitectura multiusuario de GKE, consulta Clúster de multiusuarios.
Si quieres aprender a configurar la función multiusuario para Knative serving, consulta Multiusuario entre proyectos.