En esta página, se describe cómo implementar servicios y revisiones nuevos en Cloud Run for Anthos.
Requisitos previos
Para usar Google Cloud CLI, debes tenerla instalada y configurada.
Permisos necesarios para realizar una implementación
Necesitas permisos para crear, actualizar y borrar en el apiGroup serving.knative.dev
y en el tipo Service
; además, debes tener UNA de las siguientes funciones:
- Propietario
- Editor
- Administrador de GKE
- Desarrollador de GKE
Imágenes que puedes implementar
No hay un límite de tamaño que se aplique a la imagen de contenedor que puedes implementar.
Puedes usar contenedores desde cualquier registro de contenedores, como Docker Hub. Para obtener información sobre la implementación de imágenes privadas de registros diferentes de Container Registry o Artifact Registry, consulta Implementa imágenes de contenedor privadas de otros registros de contenedores.
Implementa un servicio nuevo
Puedes especificar una imagen de contenedor con una etiqueta (por ejemplo, gcr.io/my-project/my-image:latest
) o con un resumen exacto (por ejemplo, gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
Cuando implementas en un servicio por primera vez, se crea su primera revisión. Ten en cuenta que las revisiones son inmutables. Si implementas desde una etiqueta de imagen de contenedor, se resolverá en un resumen y la revisión siempre entregará este resumen en particular.
Puedes implementar un contenedor mediante la consola de Google Cloud, la CLI de Google Cloud o desde un archivo de configuración YAML.
Haz clic en la pestaña para obtener instrucciones de la herramienta que elijas.
Configuración de la ubicación predeterminada de gcloud
Si ya configuraste una ubicación en la configuración de default
de Google Cloud CLI, los comandos de gcloud
usarán esos valores de forma predeterminada, incluidos los siguientes:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Ejecuta el siguiente comando de configuración de gcloud
para ver tu configuración de default
:
gcloud config configurations describe default
Consola
Para implementar una imagen de contenedor, sigue estos pasos:
Ve a Cloud Run for Anthos en la consola de Google Cloud:
Haz clic en Crear servicio para mostrar la página Crear servicio (Create service).
En el formulario, haz lo siguiente:
Selecciona la plataforma de Cloud Run for Anthos en la que realizas la implementación:
- Cloud Run para Anthos, que permite implementar en clústeres de GKE o Anthos en un clúster de VMware con Cloud Run for Anthos habilitado.
En el menú desplegable, selecciona uno de los clústeres de GKE disponibles para tu servicio.
Ingresa el nombre del servicio que quieras. Los nombres de servicio deben ser únicos por región y proyecto o por clúster. El nombre de un servicio no se puede cambiar más adelante.
En Conectividad, haz lo siguiente:
- Selecciona Interno si deseas restringir el acceso solo a otros servicios de Cloud Run for Anthos o a servicios del clúster que usan Istio.
- Selecciona Externo para permitir el acceso externo a tu servicio.
Ten en cuenta que puedes cambiar la opción de conectividad en cualquier momento, como se describe en Cambia la configuración de conectividad del servicio.
Haz clic en Siguiente para ir a la segunda página del formulario de creación de servicios:
En el formulario, haz lo siguiente:
En el cuadro de texto URL de la imagen de contenedor, ingresa la URL de una imagen de un registro compatible, por ejemplo,
gcr.io/myproject/my-image:latest
.Para usar Artifact Registry con las imágenes de contenedor privadas, debes usar el resumen de la imagen. Si deseas usar la etiqueta de imagen de las imágenes de contenedor privadas, debes crear y usar un
imagePullSecret
hasta que el problema conocido se resuelva.De manera opcional, haz clic en Mostrar la configuración avanzada (Show Advanced Settings) y en las pestañas posteriores para establecer lo siguiente:
Haz clic en Crear (Create) para implementar la imagen en Cloud Run for Anthos y espera a que termine la implementación.
Acabas de implementar un servicio en un clúster habilitado para Cloud Run for Anthos.
Línea de comandos
Para implementar una imagen de contenedor, sigue estos pasos:
Ejecuta el comando
gcloud run deploy
:gcloud run deploy SERVICE --image IMAGE_URL
Reemplaza SERVICE por el nombre del servicio en el que deseas realizar la implementación. Si el servicio especificado no existe, se crea un servicio nuevo.
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/myproject/my-image:latest
.Para usar Artifact Registry con las imágenes de contenedor privadas, debes usar el resumen de la imagen.
Si deseas usar la etiqueta de imagen de las imágenes de contenedor privadas, debes crear y usar un
imagePullSecret
hasta que el problema conocido se resuelva.
Opciones de implementación adicionales:
Para implementar en un espacio de nombres que no sea el predeterminado, debes especificar ese espacio de nombres con el parámetro
--namespace
.Para implementar en una ubicación distinta de la configuración predeterminada, debes especificar
name
ylocation
del clúster con--cluster
y parámetro--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Puedes establecer las opciones de conectividad con la marca
--connectivity
como se describe en Cambia la configuración de conectividad del servicio para especificar el acceso interno o externo.Para Cloud Run for Anthos en VMware, debes incluir el parámetro
--kubeconfig
y especificar tu archivo de configuración:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Espera a que finalice la implementación. Una vez que la compilación se completa de manera correcta, se muestra un mensaje de éxito, además de la URL del servicio implementado.
YAML
Puedes almacenar la especificación de servicio en un archivo YAML
y, luego, implementarla con Google Cloud CLI.
Crea un archivo
service.yaml
nuevo con este contenido:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Reemplaza los siguientes elementos:
- SERVICE por el nombre de tu servicio de Cloud Run for Anthos
- IMAGE por la URL de la imagen de contenedor. Para usar Artifact Registry con las imágenes de contenedor privadas, debes usar el resumen de la imagen.
Si deseas usar la etiqueta de imagen de las imágenes de contenedor privadas, debes crear y usar un
imagePullSecret
hasta que el problema conocido se resuelva.
También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.
Implementa el servicio nuevo mediante el siguiente comando:
gcloud beta run services replace service.yaml
Cloud Code
Para realizar una implementación con Cloud Code, consulta las guías de IntelliJ y Visual Studio Code.
Implementa una revisión nueva de un servicio existente
Puedes implementar una revisión nueva mediante la consola de Google Cloud, la línea de comandos de gcloud
o un archivo de configuración YAML.
Ten en cuenta que cualquier cambio en la configuración hace que se cree una revisión nueva, incluso si no hay cambios en la imagen de contenedor. Cada revisión creada es inmutable.
Haz clic en la pestaña para obtener instrucciones de la herramienta que elijas.
Consola
Para implementar una revisión nueva de un servicio existente, sigue estos pasos:
Ve a Cloud Run for Anthos en la consola de Google Cloud:
Identifica el servicio que deseas actualizar en la lista de servicios y haz clic en él para abrir sus detalles.
Haz clic en EDITAR E IMPLEMENTAR NUEVA REVISIÓN. Esto muestra el formulario de implementación de revisión:
Si es necesario, proporciona la URL a la imagen de contenedor nueva que deseas implementar.
De manera opcional, establece lo siguiente:
Para enviar todo el tráfico a la revisión nueva, marca la casilla de verificación Aplicar esta revisión inmediatamente. A fin de lanzar una revisión nueva de forma gradual, desmarca esa casilla de verificación; esto dará como resultado una implementación en la que no se envíe tráfico a la revisión nueva. Sigue las instrucciones para los lanzamientos graduales después de la implementación.
Haz clic en IMPLEMENTAR y espera a que finalice la implementación.
Línea de comandos
Para implementar una imagen de contenedor, sigue estos pasos:
Ejecuta el comando
gcloud run services update
:gcloud run services update SERVICE --image IMAGE_URL
- Se asigna un sufijo de revisión automáticamente para cada revisión. Si deseas especificar tu propio sufijo de revisión, agrega el parámetro --revision-suffix.
Reemplaza SERVICE por el nombre del servicio en el que deseas realizar la implementación. Si el servicio especificado no existe, se crea un servicio nuevo.
Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
gcr.io/myproject/my-image:latest
.Para usar Artifact Registry con las imágenes de contenedor privadas, debes usar el resumen de la imagen.
Si deseas usar la etiqueta de imagen de las imágenes de contenedor privadas, debes crear y usar un
imagePullSecret
hasta que el problema conocido se resuelva.
Opciones de implementación adicionales:
Para implementar en un espacio de nombres que no sea el predeterminado, debes especificar ese espacio de nombres con el parámetro
--namespace
.Para implementar en una ubicación distinta de la configuración predeterminada, debes especificar
name
ylocation
del clúster con--cluster
y parámetro--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Puedes establecer las opciones de conectividad con la marca
--connectivity
como se describe en Cambia la configuración de conectividad del servicio para especificar el acceso interno o externo.Para Cloud Run for Anthos en VMware, debes incluir el parámetro
--kubeconfig
y especificar tu archivo de configuración:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Espera a que finalice la implementación. Una vez que la compilación se completa de manera correcta, se muestra un mensaje de éxito, además de la URL del servicio implementado.
YAML
Puedes descargar la configuración de un servicio existente en un archivo YAML con el comando gcloud run services describe
mediante la marca --format=export
.
Luego, puedes modificar ese archivo YAML e implementar esos cambios con el comando gcloud beta run services replace
.
Debes asegurarte de modificar solo los atributos especificados.
Descarga la configuración del servicio en un archivo llamado
service.yaml
en el lugar de trabajo local:gcloud run services describe SERVICE --format export > service.yaml
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run for Anthos.
En tu archivo local, actualiza la configuración de revisión en cualquier atributo secundario de
spec.template
.Implementa la revisión nueva:
gcloud beta run services replace service.yaml
Cloud Code
Para implementar una nueva revisión de un servicio existente con Cloud Code, consulta las guías de IntelliJ y Visual Studio Code.
Implementa imágenes de otros proyectos de Google Cloud
Puedes implementar imágenes de contenedor de otros proyectos de Google Cloud si estableces los permisos de IAM adecuados:
En la consola de Google Cloud, abre el proyecto de tu servicio de Cloud Run for Anthos.
Realiza las siguientes acciones, según el servicio en el que realices la implementación:
En Cloud Run for Anthos, copia el correo electrónico de la cuenta de servicio predeterminada de Compute Engine. Tiene el sufijo @developer.gserviceaccount.com
Cloud Run for Anthos en VMware, crea una cuenta de servicio de Google Cloud y descarga las credenciales. Agrega estas credenciales como
imagePullSecrets
predeterminados de la cuenta de servicio de Kubernetes.
Abre el proyecto que posee el registro de contenedores que deseas usar.
Haz clic en Agregar para agregar una principal nueva.
En el cuadro de texto Principales nuevas, pega el correo electrónico de la cuenta de servicio que copiaste antes.
En la lista desplegable Selecciona una función, selecciona la función Almacenamiento -> Visualizador de objetos de Storage.
Implementa la imagen de contenedor en el proyecto que contiene el servicio de Cloud Run for Anthos.
Implementa imágenes de contenedor privadas de otros registros de contenedores
En esta sección, se describe cómo configurar los permisos adecuados para implementar imágenes de contenedor de un registro privado arbitrario en Cloud Run for Anthos. Un registro de contenedor privado requiere credenciales para acceder a la imagen de contenedor. Ten en cuenta que no necesitas seguir estos pasos para implementar imágenes de contenedor privadas desde Container Registry o Artifact Registry en el mismo proyecto que el clúster.
Para poder implementar una imagen de contenedor privada, debes crear un secreto de Kubernetes de tipo imagePullSecret
y asociarlo con una cuenta de servicio:
Crea un secreto
imagePullSecret
llamadocontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Reemplaza DOCKER_REGISTRY_SERVER por el FQDN de registro privado (p. ej.: https://gcr.io/ para Container Registry o https://hub.docker.com para DockerHub).
- Reemplaza REGISTRY_EMAIL por tu correo electrónico.
Reemplaza REGISTRY_USER por tu nombre de usuario de Container Registry.
Si usas Container Registry o Artifact Registry y deseas almacenar y extraer credenciales de larga duración en lugar de pasar tokens de acceso de corta duración, consulta Métodos de autenticación: archivo de claves JSON.
Reemplaza REGISTRY_PASSWORD por tu contraseña de registro de contenedores.
Abre tu cuenta de servicio predeterminada:
kubectl edit serviceaccount default --namespace default
Cada espacio de nombres en tu clúster de Kubernetes tiene una cuenta de servicio predeterminada llamada
default
. Esta cuenta de servicio predeterminada se usa para extraer la imagen de contenedor, a menos que se especifique lo contrario cuando implementes el servicio de Cloud Run for Anthos.Agrega el secreto
imagePullSecret
recién creado a tu cuenta de servicio predeterminada:imagePullSecrets: - name: container-registry
Tu cuenta de servicio debería verse así:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Ahora, todos los Pods nuevos creados en el espacio de nombres default
actual tendrán definido el secreto imagePullSecret
.
Realiza una implementación con la inyección automática del sidecar de Istio habilitada
Para implementar tu servicio en el espacio de nombres con la inyección automática del sidecar de Istio habilitada, debes usar una instalación de Istio por separado.
Implementa servicios en una red interna
Implementar servicios en una red interna es útil para las empresas que proporcionan apps internas a su personal y para servicios que usan los clientes y se ejecutan fuera del clúster de Cloud Run for Anthos.
Para implementar servicios en una red interna, consulta Configura una red interna privada.
¿Qué sigue?
Después de implementar un servicio nuevo, puedes hacer lo siguiente:
- Lanzamientos graduales, revisiones de reversión, migración de tráfico
- Visualizar registros de servicio
- Supervisar el rendimiento del servicio
- Establecer límites de memoria
- Configurar las variables de entorno
- Cambiar la simultaneidad del servicio
- Administrar el servicio
- Administra revisiones de servicios
Puedes automatizar las implementaciones y compilaciones de los servicios de Cloud Run for Anthos mediante los activadores de Cloud Build: