En esta guía, se muestra cómo configurar un clúster de Google Kubernetes Engine y habilitar Cloud Run for Anthos en Google Cloud.
Puedes usar Cloud Console o la herramienta de línea de comandos de gcloud
a fin de habilitar Cloud Run for Anthos en clústeres estándar y privados de GKE.
Habilitar Cloud Run for Anthos instala Istio y Knative Serving en el clúster para conectar y administrar tus cargas de trabajo sin estado. Si deseas obtener más información, consulta la Descripción general de la arquitectura de Cloud Run for Anthos.
Antes de comenzar
- Cloud Run for Anthos es un complemento para Google Kubernetes Engine. Hay una prueba gratuita disponible hasta el 31 de marzo de 2021.
- Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.
Configura el entorno de la línea de comandos
Aunque puedes optar por usar Cloud Console o la herramienta de gcloud
para administrar Cloud Run for Anthos, hay algunas tareas que requieren la herramienta de gcloud
.
Si quieres configurar las herramientas de línea de comandos de gcloud
y kubectl
para Cloud Run for Anthos, haz lo siguiente:
Establece la configuración predeterminada del proyecto para la herramienta de
gcloud
en la que acabas de crear o en un proyecto existente que desees usar:gcloud config set project PROJECT-ID
Reemplaza PROJECT-ID por el ID del proyecto que creaste.
Configura
zone
como la zona que deseas para tu clúster. Puedes usar cualquier zona que admita GKE. Por ejemplo:gcloud config set compute/zone ZONE
Reemplaza ZONE por la zona.
Habilita las siguientes API para el proyecto, que son necesarias si deseas crear un clúster, compilar un contenedor y publicar un contenedor en el registro de Google Kubernetes Engine:
gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com
Instala la herramienta de línea de comandos
kubectl
:gcloud components install kubectl
Actualiza los componentes instalados de la herramienta de
gcloud
:gcloud components update
Habilita Cloud Run for Anthos
Cloud Run for Anthos se ejecuta en un clúster de GKE. Puedes habilitar Cloud Run for Anthos en un clúster existente o puedes crear un clúster nuevo con Cloud Run for Anthos habilitado.
Elige cómo quieres configurar Cloud Run for Anthos:
Cloud Run for Anthos también se puede habilitar en clústeres de GKE privados. Para obtener información sobre cómo crear un clúster de GKE privado, consulta Crea un clúster privado en la documentación de GKE.
Crea un clúster nuevo de GKE con Cloud Run for Anthos habilitado
En estas instrucciones, se crea un clúster con las siguientes opciones de configuración:
- Cloud Run for Anthos habilitado
- Versión de Kubernetes: versiones disponibles de GKE
- 3 nodos con 2 CPU virtuales
- Espacio de nombres predeterminado:
default
Estas son las configuraciones de clúster recomendadas para probar Cloud Run for Anthos. Para las cargas de trabajo de producción, recomendamos configurar un clúster de GKE según tus necesidades específicas. Para obtener información sobre los diferentes tipos de clústeres de GKE y sus opciones de configuración, consulta Tipos de clústeres en la documentación de GKE.
Console
Para crear un clúster con Cloud Run for Anthos habilitado, haz lo siguiente:
Ve a la página de Cloud Run for Anthos en Cloud Console:
Haz clic en Crear servicio.
Haz clic para abrir el menú desplegable de clústeres disponibles y, luego, haz clic en Crear clúster nuevo.
En el panel Crear un clúster predeterminado habilitado para Cloud Run for Anthos, haz lo siguiente:
Selecciona una zona para el clúster. Elige una ubicación cerca de ti. Por ejemplo, elige
us-west1-a
si te encuentras en la costa oeste de Estados Unidos.Elige un nombre para el clúster nuevo.
Haz clic en Creación rápida a fin de que se cree un clúster con los requisitos mínimos para Cloud Run for Anthos con Cloud Run for Anthos habilitado.
Elige un Nombre para el nuevo servicio de Cloud Run for Anthos y, luego, haz clic en Siguiente.
En la sección Configurar la primera revisión del servicio, haz lo siguiente:
Selecciona Implementar una revisión desde una imagen de contenedor existente.
En el campo URL de imagen de contenedor, ingresa una URL para tu propia imagen de contenedor o haz clic en Seleccionar para elegir entre los contenedores de Container Registry disponibles y una selección. de contenedores de demostración.
Haga clic en Next.
En la sección Conectividad, elige entre crear un servicio interno o externo. Solo se puede acceder a los servicios internos a través de la red del clúster, mientras que los servicios externos son accesibles desde la Internet pública. Puedes cambiar este parámetro de configuración más tarde.
Haga clic en Crear. La creación del clúster y el servicio tardará unos minutos.
Línea de comandos
Para crear un clúster y habilitar Cloud Run for Anthos, haz lo siguiente:
Crea un clúster:
gcloud container clusters create CLUSTER-NAME \ --zone=ZONE \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-2 \ --num-nodes=3 \ --cluster-version=GKE-VERSION \ --enable-stackdriver-kubernetes
CLUSTER-NAME es el nombre que deseas para tu clúster.
ZONE es la zona de Compute Engine deseada para el clúster.
GKE-VERSION es la versión de GKE deseada. Consulta las versiones disponibles.
El ajuste de escala automático del clúster no está habilitado de forma predeterminada, aunque Cloud Run for Anthos escala automáticamente las instancias dentro de tu clúster.
Espera a que termine de crearse el clúster.
Habilita Cloud Run for Anthos en un clúster existente
Tu clúster de GKE debe tener la siguiente configuración mínima:
- 3 nodos con 2 CPU virtuales
- Permisos:
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
Puedes usar la herramienta de gcloud
o Cloud Console para habilitar Cloud Run for Anthos en un clúster:
Console
Para habilitar Cloud Run for Anthos en un clúster existente, haz lo siguiente:
Ve a la página de Google Kubernetes Engine en Cloud Console:
Haz clic en el nombre del clúster en el que deseas habilitar Cloud Run for Anthos.
Haz clic en Editar.
Selecciona Habilitar Cloud Run for Anthos.
Haz clic en Guardar. Una vez que se complete la actualización, el clúster admitirá Cloud Run for Anthos.
Línea de comandos
Para habilitar Cloud Run for Anthos en un clúster existente, haz lo siguiente:
Habilita el clúster mediante el siguiente comando:
gcloud container clusters update \ CLUSTER_NAME \ --update-addons=CloudRun=ENABLED,HttpLoadBalancing=ENABLED \ --zone=ZONE
Reemplaza lo siguiente:
- CLUSTER_NAME: es el nombre del clúster.
- ZONE: es la zona del clúster. Por ejemplo,
us-central1-a
.
Espera a que se complete la habilitación. Tras la ejecución correcta, la línea de comandos muestra un mensaje similar al siguiente:
Updating your-cluster-name...done.
Establece la configuración predeterminada para la herramienta de gcloud
Después de crear el clúster, puedes establecer los valores predeterminados que usará la herramienta de línea de comandos de gcloud
. Cuando usas la línea de comandos, esto quita los mensajes subsiguientes para cualquier valor predeterminado que establezcas, por ejemplo, el nombre o la ubicación del clúster.
Puedes definir una configuración predeterminada para los siguientes valores:
- Nombre del clúster
- Ubicación del clúster
- Credenciales
Para establecer valores predeterminados, haz lo siguiente:
Configura tu clúster predeterminado y su ubicación; luego, obtén las credenciales mediante la ejecución de los siguientes comandos:
gcloud config set kuberun/cluster CLUSTER gcloud config set kuberun/cluster_location ZONE gcloud container clusters get-credentials CLUSTER
Reemplazar
- CLUSTER por el nombre del clúster
- ZONE por la ubicación del clúster
Habilita métricas en un clúster con Workload Identity
Cuando habilitas Workload Identity, Cloud Run for Anthos no informa ciertas métricas, como el recuento de solicitudes de revisión o la latencia de las solicitudes, a Google Cloud's operations suite, pero continúa informando métricas de CPU y memoria.
A fin de habilitar todas las métricas, necesitas configurar de forma manual los permisos para escribir métricas en Cloud Monitoring. Con este propósito, otorga la función de escritor de métricas de Monitoring a la cuenta de servicio de Google (GSA) asociada con el servicio de Cloud Run for Anthos.
Otorga los permisos de la función de escritor de métricas de Monitoring a la GSA de tu servicio:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter
Reemplaza lo siguiente:
- PROJECT_ID por el ID del proyecto de clúster que aloja tu KSA.
- GSA_PROJECT por el ID del proyecto de una GSA que no está en el clúster. Puedes usar cualquier GSA de tu organización.
Para obtener más información, consulta Otorga, cambia y revoca el acceso a los recursos.
Para configurar los servicios que proporcionan las API de Google Cloud, como las de Compute, Storage, Database y las API de aprendizaje automático desde tu clúster de GKE, consulta la página sobre cómo utilizar Workload Identity.
Desarrolla en una configuración multiusuario
En casos de uso multiusuario, deberás implementar y administrar Cloud Run for Anthos en los servicios de Google Cloud para un clúster de Google Kubernetes Engine que esté fuera de tu proyecto actual. En esta sección, se explica cómo desarrollar servicios de Cloud Run for Anthos en Google Cloud en una configuración de clúster de multiusuario.
Para implementar y administrar Cloud Run for Anthos en los servicios de Google Cloud para un clúster de Google Kubernetes Engine fuera de tu proyecto actual, haz lo siguiente:
Asegúrate de tener acceso de lectura al ID del proyecto de Google Cloud del clúster en el que realizas la implementación.
Actualiza tu archivo local
kubeconfig
con las credenciales para el clúster de GKE de destino:gcloud container clusters get-credentials NAME \ --region=REGION \ --project=PROJECT-ID
- REGION es la región de Compute Engine de tu clúster de destino.
- PROJECT-ID es el proyecto al que tienes acceso de lectura.
Para obtener más información, consulta la documentación de referencia del comando
gcloud container clusters get-credentials
.
Ahora puedes ejecutar los comandos en el clúster de GKE de destino especificado en tu archivo kubeconfig
.
Por ejemplo, el siguiente comando implementará un servicio de Cloud Run for Anthos en Google Cloud con una imagen de contenedor especificada en el clúster de GKE cuyas credenciales se almacenan en el archivo kubeconfig
:
gcloud kuberun core services create SERVICE-NAME --image IMAGE-NAME
Configura una red privada interna
Implementar servicios en una red interna es útil para empresas que proporcionan apps internas a su personal y para servicios que se ejecutan fuera del clúster de Cloud Run for Anthos en Google Cloud. 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.
A fin de crear una red interna, configura la puerta de enlace de enlace de Ingress de Istio para que use el balanceo de cargas de TCP/UDP interno, en lugar de un balanceador de cargas de red externo y público. A continuación, podrás implementar los servicios de Cloud Run for Anthos en una dirección IP interna dentro de la red de VPC.
Antes de comenzar
- Debes tener permisos
admin
en el clúster. - Solo se admiten las versiones 310.0 o posteriores del SDK de Cloud. Para obtener más detalles, consulta Configura gcloud.
Para configurar el balanceador de cargas interno, haz lo siguiente:
Crea un clúster nuevo o actualiza un clúster existente a fin de actualizar la puerta de enlace de Ingress de Istio para usar el balanceo de cargas de TCP/UDP interno:
Crea un clúster nuevo con un balanceador de cargas interno:
gcloud container clusters create CLUSTER_NAME \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-2 \ --num-nodes=3 \ --enable-stackdriver-kubernetes \ --cloud-run-config=load-balancer-type=INTERNAL
Actualiza un clúster existente para usar un balanceador de cargas interno:
gcloud container clusters update CLUSTER_NAME --update-addons=CloudRun=ENABLED \ --cloud-run-config=load-balancer-type=INTERNAL
Es posible que el cambio tome unos minutos en aplicarse.
Ejecuta el siguiente comando para ver las actualizaciones en el clúster de GKE:
kubectl -n gke-system get svc istio-ingress --watch
- Observa 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
.
Para verificar la conectividad interna después de realizar los cambios, sigue estos pasos:
Implementa un servicio llamado
sample
en Cloud Run for Anthos en el espacio de nombresdefault
:gcloud kuberun core services create sample \ --image gcr.io/knative-samples/simple-api \ --namespace default
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 gke-system get svc istio-ingress \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
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.example.com $(cat external-ip.txt)
Este es el resultado:
OK
Sal de la sesión de SSH:
exit
Usa una instalación de Istio independiente
En las siguientes instrucciones, se muestra cómo conectar Anthos Service Mesh, el complemento de Istio on GKE, o una instalación de Istio personalizada con Cloud Run for Anthos, además de los componentes de Istio ya instalados de forma predeterminada en Cloud Run for Anthos.
En este momento, los componentes de Istio incluidos en la instalación predeterminada de Cloud Run for Anthos no admiten la inserción automática del archivo adicional. Sin embargo, puedes usar una instalación adicional de Istio a fin de habilitar la inserción adicional del archivo adicional de Istio para el espacio de nombres del servicio implementado.
Para usar una instalación de Istio adicional, debes verificar que la puerta de enlace de entrada de Istio se llame istio-ingressgateway
en el espacio de nombres istio-system
.
Cloud Run for Anthos puede admitir y administrar el tráfico externo de las puertas de enlace de entrada de Istio instaladas en los siguientes espacios de nombres:
- El espacio de nombres
istio-system
, con el dominio local del clústeristio-ingressgateway.istio-system.svc.cluster.local
que se configura de forma predeterminada cuando usas una instalación adicional de Istio - El espacio de nombres
gke-system
, con el dominio local del clústeristio-ingress.gke-system.svc.cluster.local
configurado con la instalación predeterminada de Cloud Run for Anthos.
Para verificar el uso adicional de Cloud Run for Anthos de la puerta de enlace de entrada de Istio, sigue estos pasos:
Abre el ConfigMap
config-istio
:kubectl get configmap config-istio --namespace knative-serving -oyaml
Verifica que la puerta de enlace de entrada de Istio adicional tenga el nombre
istio-ingressgateway
y esté en el espacio de nombresistio-system
.
Habilita HTTPS y los dominios personalizados
Si deseas usar HTTPS y dominios personalizados que se apliquen al clúster, consulta Habilita las conexiones HTTPS y los certificados TLS automáticos y Asigna dominios personalizados.
Inhabilita Cloud Run for Anthos
Para inhabilitar Cloud Run for Anthos en tu clúster, sigue estos pasos:
Ve a la página de Google Kubernetes Engine en Cloud Console:
Haz clic en el clúster en el que deseas inhabilitar Cloud Run for Anthos.
Haz clic en Editar.
En el menú desplegable Cloud Run for Anthos, selecciona Inhabilitar.
Haz clic en Guardar.
¿Qué sigue?
- Descripción general de la arquitectura de Cloud Run for Anthos
- Habilita las conexiones HTTPS y los certificados TLS automáticos
- Implementa desde un contenedor
- Compila contenedores
- Soluciona problemas