Si administras lanzamientos en varias flotas, te recomendamos que uses un proyecto dedicado para alojar tus objetos RolloutSequence. Este proyecto actúa como coordinador y superior de las versiones en toda la secuencia. Por lo general, este proyecto no forma parte de la secuencia, es decir, no contiene flotas ni clústeres que sí formen parte de ella.
Antes de comenzar
-
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:
gcloud init - Asegúrate de tener clústeres existentes de Autopilot o Standard. Para crear un clúster nuevo, consulta Crea un clúster de Autopilot.
- (Opcional) Si aún no tienes un proyecto de Cloud de Confiance by S3NS dedicado para alojar tu configuración de
RolloutSequence, crea uno con la consola deCloud de Confiance o con otro método. - Asegúrate de haber habilitado las APIs necesarias para las flotas.
Estas APIs deben estar habilitadas en los proyectos host de tu flota para crear cualquier tipo de secuencia de lanzamiento. En el proyecto host de la secuencia de lanzamiento, habilita la API de
gkehub.googleapis.com. Para obtener instrucciones de Terraform, asegúrate de usar la siguiente versión o una posterior del proveedor de
googlede Terraform, según las acciones que desees realizar:- Se requiere la versión 7.39.0 o una posterior para las siguientes acciones:
- Se requiere la versión 7.42.0 o una posterior para la siguiente acción:
Roles obligatorios
Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
Para crear o modificar una secuencia de lanzamiento, debes tener el rol de IAM de editor de flota (roles/gkehub.editor) en cada proyecto host de la flota de la secuencia de lanzamiento y en el proyecto host de la secuencia de lanzamiento. Este rol proporciona los siguientes permisos:
gkehub.rolloutsequences.creategkehub.rolloutsequences.getgkehub.rolloutsequences.listgkehub.rolloutsequences.updategkehub.rolloutsequences.deletegkehub.fleet.update
Estos permisos te permiten crear, acceder y modificar objetos RolloutSequence, y usar flotas en la secuencia de lanzamiento.
Si necesitas registrar clústeres en una flota o anular su registro, debes tener todos los siguientes permisos:
- Permisos de registro de clústeres en los proyectos host de tu flota.
- Permisos de administrador del clúster para que se registre cualquier clúster de GKE.
- Permisos de registro de clústeres entre proyectos para que cualquier clúster de GKE se registre en una flota en un proyecto diferente.
Puedes crear secuencias de lanzamiento con flotas alojadas en proyectos de una o más organizaciones, si tienes los permisos necesarios para esos proyectos.
Para obtener más información sobre los roles de IAM con privilegios mínimos necesarios para diferentes tareas, consulta Obtén sugerencias de roles predefinidos con la ayuda de Gemini.
Configura una secuencia de lanzamiento
Para crear una secuencia de lanzamiento, tus clústeres deben estar organizados en grupos de flotas. También puedes crear etapas detalladas que se dirijan a subconjuntos específicos de clústeres dentro de una flota con etiquetas de Kubernetes. Para obtener orientación sobre cómo organizar tus clústeres, consulta el ejemplo del banco comunitario. Después de organizar los clústeres en grupos y, de manera opcional, etiquetarlos, debes crear una secuencia de lanzamiento definiendo la lista ordenada de etapas y el tiempo de prueba para cada grupo.
Organiza los clústeres en flotas
En una secuencia de lanzamiento, te recomendamos que inscribas todos los clústeres en el mismo canal de versiones. Si los clústeres no están inscritos en el mismo canal, GKE selecciona una versión del canal más conservador de la secuencia. Por ejemplo, si los clústeres están inscritos en los canales Estable y Regular, GKE elige la versión del canal Estable. También recomendamos que todos los clústeres ejecuten la misma versión secundaria para poder ser aptos para la misma versión de destino de actualización automática.
Si ya organizaste tus clústeres en flotas, puedes omitir los siguientes pasos y continuar con la sección Crea subconjuntos de clústeres.
- Agrupa tus clústeres en flotas. Puedes organizar tus clústeres por entornos de implementación, como Pruebas, Etapa de pruebas y Producción (recomendado).
- Registra cada clúster con una flota según la agrupación elegida.
Crea subconjuntos de clústeres (opcional)
Para que una etapa de tu secuencia de lanzamiento se dirija a clústeres específicos, debes etiquetarlos.
Por ejemplo, para probar una versión nueva en un subconjunto pequeño de clústeres antes de un lanzamiento completo, puedes aplicar una etiqueta canary a esos clústeres. Para agregar la etiqueta canary con el valor true a un clúster con Google Cloud CLI, ejecuta el siguiente comando:
gcloud container clusters update CLUSTER_NAME \
--location=CLUSTER_LOCATION\
--update-labels=canary=true
Reemplaza lo siguiente:
CLUSTER_NAME: es el nombre del clúster existente.CLUSTER_LOCATION: La región o zona de Compute Engine del clúster.
La marca --update-labels=canary=true indica a GKE que aplique la etiqueta canary al clúster .
Para obtener más información sobre cómo agregar una etiqueta a un clúster, consulta Agrega o actualiza etiquetas en clústeres existentes.
Crea una secuencia de lanzamiento con etapas personalizadas
Una secuencia de lanzamiento con etapas personalizadas define el orden de las actualizaciones declarando las etapas. Con gcloud CLI, usas un archivo YAML y, con Terraform, agregas un bloque de recursos a tu configuración.
Cuando realices los pasos que se describen en esta sección, crearás un RolloutSequence.
Para garantizar que la secuencia capture todos los clústeres, cada flota debe incluir una etapa general (una etapa sin un selector de etiquetas). Esta etapa general captura todos los clústeres restantes que GKE no seleccionó en etapas anteriores. Si asignas un solo clúster a varias etapas dentro de un solo RolloutSequence, para resolver conflictos, GKE asigna implícitamente el clúster solo a la etapa más temprana.
En los siguientes ejemplos de configuración, se crean tres etapas:
- La primera etapa se dirige a todos los clústeres de la flota
dev. Una vez que se completa la actualización, hay un tiempo de prueba de 7 días (7d). - La segunda etapa segmenta los clústeres de la flota
prodque tienen la etiquetacanary=true. Una vez que se completa la actualización, hay un tiempo de estabilización de 7 días (7d). La tercera etapa se dirige a los clústeres restantes de la flota
prod. Una vez que se completa la actualización, hay un tiempo de prueba de 7 días (7d).
gcloud
Guarda el siguiente manifiesto como
rollout-sequence.yaml:- stage: fleet-projects: - projects/dev soak-duration: 7d - stage: fleet-projects: - projects/prod soak-duration: 7d label-selector: resource.labels.canary=='true' - stage: fleet-projects: - projects/prod soak-duration: 7dTen en cuenta lo siguiente:
stage: Incluye una flota o un subconjunto de clústeres dentro de una flota. Los clústeres en etapas anteriores deben actualizarse y probarse por completo antes de que la secuencia avance a la siguiente etapa. Sin embargo, si un clúster no finalizó la actualización 30 días después de que comenzó el proceso de actualización, GKE comienza el período de prueba.fleet-projects: Es una lista de flotas desde las que se pueden seleccionar clústeres para esta etapa. Se puede hacer referencia a un máximo de una flota por etapa. Una flota se identifica por el proyecto en el que se aloja. Este proyecto puede ser diferente del proyecto en el que residen los clústeres si la flota contiene membresías entre proyectos. El formato para especificar un proyecto de flota esprojects/PROJECT_ID.label-selector(opcional): Selecciona un subconjunto de clústeres de las flotas especificadas. Este campo usa la sintaxis de Common Expression Language (CEL) y debe comenzar conresource.labels.soak-duration: Es el tiempo que se debe esperar después de actualizar todos los clústeres en una etapa anterior antes de continuar con la siguiente etapa. Se expresa en segundos, minutos, horas y días.
Para crear la secuencia de lanzamiento que definiste en el manifiesto
rollout-sequence.yaml, ejecuta el siguiente comando:gcloud container fleet rolloutsequences create ROLLOUT_SEQUENCE_NAME \ --display-name=DISPLAY_NAME \ --stage-config=rollout-sequence.yamlReemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es un identificador inmutable que se ajusta a las especificaciones de RFC-1034, por ejemplo,test-rollout-sequence.DISPLAY_NAME: Es una cadena legible para tu secuencia de lanzamiento.
Terraform
En esta sección, se muestra cómo crear una secuencia de lanzamiento con etapas personalizadas usando Terraform. También puedes usar este recurso para actualizar la secuencia. Para obtener más información, consulta la documentación de referencia de google_gke_hub_rollout_sequence.
Agrega el siguiente bloque a la configuración de Terraform para crear un recurso de secuencia de lanzamiento:
resource "google_gke_hub_rollout_sequence" "rollout_sequence" { rollout_sequence_id = "ROLLOUT_SEQUENCE_NAME" display_name = "DISPLAY_NAME" stages { fleet_projects = ["projects/dev"] soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] cluster_selector { label_selector = "resource.labels.canary=='true'" } soak_duration = "7d" } stages { fleet_projects = ["projects/prod"] soak_duration = "7d" } }Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es un identificador inmutable que se ajusta a las especificaciones de RFC-1034, por ejemplo,test-rollout-sequence.DISPLAY_NAME: Es una cadena legible para tu secuencia de lanzamiento.
Lanza una versión específica
Puedes lanzar una versión específica en tu secuencia de lanzamiento. Para obtener más información, consulta Cómo lanzar una versión específica.
Puedes lanzar una versión a los planos de control o a los nodos de los clústeres en tu secuencia de lanzamiento. Puedes seleccionar de forma independiente qué versiones implementar en los planos de control o los nodos.
GKE solo puede lanzar una versión a la vez en una etapa para el plano de control o los nodos, respectivamente. Si tienes una versión existente que se ejecuta en la primera etapa de la secuencia de lanzamiento, GKE hace lo siguiente, según si administras tu secuencia de lanzamiento con gcloud CLI o Terraform:
- gcloud CLI: Cuando ejecutas el comando, un mensaje interactivo te pregunta si deseas cancelar el lanzamiento existente para crear el lanzamiento a la versión que especificaste. Si respondes de forma afirmativa, GKE cancelará el lanzamiento existente y creará uno nuevo. De lo contrario, GKE conservará la implementación existente y no creará una nueva como solicitaste originalmente en el comando.
- Terraform: Cuando actualizas tu configuración de Terraform como se describe en la siguiente sección, GKE cancela el lanzamiento existente si este se encuentra en la primera etapa.
Lanza una versión a los planos de control en una secuencia de lanzamiento
gcloud
Ejecuta el siguiente comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--control-plane-version="CONTROL_PLANE_VERSION"
Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es el nombre de la secuencia de lanzamiento.CONTROL_PLANE_VERSION: Es la versión que se lanzará. Puedes elegir una versión específica, como1.34.7-gke.1055000, o usar un alias de versión. Para obtener más información, consulta Cómo especificar la versión del clúster.
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, puedes lanzar una versión específica agregándola al bloque que usaste para crear la secuencia de lanzamiento.
Agrega el siguiente campo al bloque. Puedes agregar el campo en cualquier lugar, excepto entre los bloques stages, que deben ser consecutivos:
min_control_plane_version = "CONTROL_PLANE_VERSION"
Reemplaza CONTROL_PLANE_VERSION por la versión que se lanzará. Puedes elegir una versión específica, como 1.34.7-gke.1055000, o usar un alias de versión. Para obtener más información, consulta Cómo especificar la versión del clúster.
Si ya usaste este campo para lanzar una versión del plano de control, el campo permanecerá en el bloque. Reemplaza la versión anterior que se lanzó con el CONTROL_PLANE_VERSION que deseas lanzar esta vez.
Lanza una versión a los nodos en una secuencia de lanzamiento
gcloud
Ejecuta el siguiente comando:
gcloud container fleet rolloutsequences upgrade ROLLOUT_SEQUENCE_NAME \
--node-version="NODE_VERSION"
Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es el nombre de la secuencia de lanzamiento.NODE_VERSION: Es la versión que se lanzará, por ejemplo,1.34.7-gke.1055000.
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, puedes lanzar una versión específica agregándola al bloque que usaste para crear la secuencia de lanzamiento.
Agrega el siguiente campo al bloque. Puedes agregar el campo en cualquier lugar, excepto entre los bloques stages, que deben ser consecutivos:
min_node_version = "NODE_VERSION"
Reemplaza NODE_VERSION por la versión que se lanzará, por ejemplo, 1.34.7-gke.1055000. Si ya usaste este campo para lanzar una versión de nodo, el campo permanecerá en el bloque. Reemplaza la versión anterior que se lanzó con el NODE_VERSION que deseas lanzar esta vez.
Cómo verificar el estado de un lanzamiento
Después de configurar una secuencia de lanzamiento, el sistema crea automáticamente objetos Rollout para administrar las actualizaciones. Puedes observar y hacer un seguimiento del progreso de estos objetos con los comandos de Google Cloud CLI.
Enumera lanzamientos
Para enumerar todos los lanzamientos activos y los históricos en el proyecto host de la secuencia de lanzamiento, ejecuta el siguiente comando:
gcloud container fleet rollouts list --project=HOST_PROJECT_ID
Reemplaza HOST_PROJECT_ID por el ID de tu proyecto host de la secuencia de lanzamiento.
Puedes omitir la marca --project=HOST_PROJECT_ID si ya estás en el proyecto en el que se aloja tu secuencia de lanzamiento.
El resultado es similar a lo siguiente:
NAME STATE CREATE_TIME
05eb251e4f19269e23-node-1-33-5-gke-1201000-t7mqd COMPLETED 2025-10-30T20:07:46
05eb251e4f19269e23-kcp-1-33-5-gke-1201000-djwst COMPLETED 2025-10-30T18:07:06
05eb251e4f19269e23-node-1-33-5-gke-1125000-6bxvu COMPLETED 2025-10-23T17:46:54
05eb251e4f19269e23-kcp-1-33-5-gke-1125000-2f6ct RUNNING 2025-10-23T16:41:33
En el resultado anterior, los nombres de la implementación que contienen kcp hacen referencia a las actualizaciones del plano de control, y los nombres que contienen node hacen referencia a las actualizaciones de nodos. El segmento del nombre de la versión después de kcp o node se deriva de la versión de GKE.
Describe un lanzamiento
Para obtener información detallada sobre un lanzamiento en particular, incluida la versión de destino, el estado y los clústeres que se actualizaron, usa el comando describe con el ID del lanzamiento que obtuviste del comando anterior:
gcloud container fleet rollouts describe ROLLOUT_ID \
--project=HOST_PROJECT_ID
Reemplaza lo siguiente:
ROLLOUT_ID: ID de la versión que obtuviste cuando enumeraste las versiones.HOST_PROJECT_ID: Es el ID del proyecto en el que se aloja tu secuencia de lanzamiento.
Por ejemplo:
gcloud container fleet rollouts describe 927e9a989930cf3b55-kcp-1-32-4-gke-1106006 \
--project=my-hostfleet
El resultado es similar a lo siguiente:
createTime: '2025-05-26T11:47:29.909959672Z'
membershipStates:
projects/dev-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T12:20:55.601542481Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-1234567890-abcdefg-hijklm-nopqrst
state: SUCCEEDED
stageAssignment: 1
projects/dev-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T12:22:57.151203493Z'
targets:
- cluster: projects/dev-project-id/locations/us-central1/clusters/c-2
operation: //container.googleapis.com/v1/projects/dev-project-id/locations/us-central1/operations/operation-987654321-ghijkl-mno-pqr-stu-vwxyz
state: SUCCEEDED
stageAssignment: 1
projects/prod-project-id/locations/us-central1/memberships/c-1:
lastUpdateTime: '2025-05-26T13:03:34.134308942Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-567891234-efghij-klm-nopq-rstu-vwxyz
state: SUCCEEDED
stageAssignment: 2
projects/prod-project-id/locations/us-central1/memberships/c-2:
lastUpdateTime: '2025-05-26T13:06:34.025261641Z'
targets:
- cluster: projects/prod-project-id/locations/us-central1/clusters/c-1
operation: //container.googleapis.com/v1/projects/prod-project-id/locations/us-central1/operations/operation-765432198-01a7b896-67c2-523-6fjjh4-icmdydh
state: SUCCEEDED
stageAssignment: 2
name: projects/user-hostfleet/locations/global/rollouts/05eb251e4f19269e23-kcp-1-32-4-gke-1106006
rolloutSequence: projects/project-id/locations/global/rolloutSequences/my-sequence
state: COMPLETED
updateTime: '2025-07-22T07:36:51.052691989Z'
versionUpgrade:
desiredVersion: 1.32.4-gke.1106006
type: TYPE_CONTROL_PLANE
stages:
- state: COMPLETED
endTime: '2025-05-26T12:22:28.828506491Z'
stageNumber: 1
startTime: '2025-05-26T11:48:28.772658427Z'
soakDuration: 600s
- state: COMPLETED
endTime: '2025-05-26T13:06:20.026390832Z'
stageNumber: 2
startTime: '2025-05-26T12:32:38.419372153Z'
soakDuration: 600s
Información de estado de un lanzamiento
Cuando describes un lanzamiento, los campos stages y membershipStates del resultado proporcionan el estado de progreso de cada etapa y clúster dentro de esa etapa, respectivamente.
En la siguiente tabla, se enumeran los estados posibles de una etapa:
| Estado | Descripción |
|---|---|
PENDING |
La actualización aún no comenzó para esta etapa. |
RUNNING |
La actualización está en curso para esta etapa. Si configuraste un período de mantenimiento para los clústeres en la etapa, GKE espera a que se abra el período antes de actualizar los clústeres. |
SOAKING |
Todos los clústeres en esta etapa completaron sus actualizaciones, y la etapa se encuentra en su período de prueba configurado. |
FORCED_SOAKING |
La actualización tardó más que el tiempo máximo de actualización (30 días) y, por lo tanto, GKE inició la fase de tiempo de prueba de forma forzada. La actualización continúa en los clústeres restantes. |
COMPLETED |
La etapa finalizó su período de estabilización y el lanzamiento continúa con la siguiente etapa. |
En la siguiente tabla, se enumeran los estados posibles de un clúster dentro de una secuencia:
| Estado | Descripción |
|---|---|
PENDING |
La actualización está pendiente en este clúster. |
INELIGIBLE |
Este clúster no es apto para la actualización, posiblemente debido a una discrepancia de versión. El motivo por el que no se cumple con los requisitos se proporciona en el resultado. |
RUNNING |
La actualización está en curso en este clúster. |
SUCCEEDED |
La actualización se completó correctamente en este clúster. |
FAILED |
Falló la actualización en este clúster. Los destinos con errores se reintentan de forma indefinida mientras su etapa está activa (en estado RUNNING o FORCED_SOAKING). |
Administra un lanzamiento
Puedes administrar una versión individual siguiendo las instrucciones que se proporcionan en las siguientes secciones. Para obtener más información sobre cómo administrar un lanzamiento y las acciones correspondientes que puedes realizar, consulta Cómo administrar un lanzamiento.
Para administrar una secuencia de lanzamiento completa, y no solo un lanzamiento específico, consulta la siguiente sección, Administra una secuencia de lanzamiento.
Cómo pausar un lanzamiento
Puedes pausar un lanzamiento activo. Para obtener más información sobre esta acción, consulta Cómo pausar una implementación.
Para pausar un lanzamiento, ejecuta el siguiente comando:
gcloud container fleet rollouts pause ROLLOUT_ID
Reemplaza ROLLOUT_ID por el ID del lanzamiento que deseas pausar. Para obtener los IDs de las versiones de tu secuencia de versiones, consulta Cómo enumerar versiones.
Reanuda un lanzamiento
Puedes reanudar un lanzamiento pausado que se haya pausado por menos de 90 días. Para obtener más información sobre esta acción, consulta Cómo reanudar un lanzamiento.
Para reanudar un lanzamiento pausado, ejecuta el siguiente comando:
gcloud container fleet rollouts resume ROLLOUT_ID
Reemplaza ROLLOUT_ID por el ID del lanzamiento que deseas reanudar. Para obtener los IDs de las versiones de las implementaciones en tu secuencia de implementación, consulta Cómo enumerar implementaciones.
Cancela un lanzamiento
Puedes cancelar un lanzamiento, incluidos los que estén activos o en pausa. No puedes cancelar las publicaciones de actualizaciones automáticas obligatorias. Para obtener más información sobre cómo cancelar lanzamientos, consulta Cómo cancelar un lanzamiento.
Para cancelar un lanzamiento, ejecuta el siguiente comando:
gcloud container fleet rollouts cancel ROLLOUT_ID
Reemplaza ROLLOUT_ID por el ID del lanzamiento que deseas cancelar. Para obtener los IDs de las versiones de las implementaciones en tu secuencia de implementación, consulta Cómo enumerar implementaciones.
Cómo completar una etapa de lanzamiento
Puedes completar una etapa de lanzamiento si ya tienes todo listo para que las actualizaciones pasen a la siguiente etapa. Para obtener más información sobre esta acción, consulta Cómo completar una etapa de lanzamiento.
Para completar una etapa de lanzamiento, ejecuta el siguiente comando:
gcloud container fleet rollouts force-complete-stage ROLLOUT_ID \
--stage=STAGE
Reemplaza lo siguiente:
ROLLOUT_ID: Es el ID de la versión de lanzamiento en la que deseas completar una etapa. Para obtener los IDs de las versiones de las implementaciones en tu secuencia de implementación, consulta Cómo enumerar implementaciones.STAGE: Es la etapa que deseas completar ahora. Por ejemplo, si deseas completar la segunda etapa, ingresa2. La etapa debe estar en ejecución o en remojo para usar este comando.
Ignora un clúster en una secuencia de lanzamiento para un lanzamiento específico
Puedes hacer que GKE ignore un clúster en una secuencia de lanzamiento si no quieres que se actualice como parte de un lanzamiento activo. Sin embargo, esta acción quita el clúster de la secuencia de lanzamiento para los lanzamientos activos y futuros, no solo para los lanzamientos activos.
Para realizar esta acción y evitar que se actualice un clúster en un lanzamiento activo, consulta Cómo ignorar un clúster en una secuencia de lanzamiento.
Administra una secuencia de lanzamiento
Puedes controlar las actualizaciones automáticas del clúster con la secuencia de lanzamiento de varias maneras, que se explican en las siguientes secciones.
Si deseas administrar un lanzamiento de una secuencia de lanzamientos en lugar de toda la secuencia y todos sus lanzamientos, consulta Cómo administrar un lanzamiento.
Enumera tus secuencias de lanzamiento
Para enumerar todas las secuencias de lanzamiento en tu proyecto host, ejecuta el siguiente comando:
gcloud container fleet rolloutsequences list --project=HOST_PROJECT_ID
Reemplaza HOST_PROJECT_ID por el ID de tu proyecto host de la secuencia de lanzamiento.
Describe una secuencia de lanzamiento
Para ver los detalles de una secuencia de lanzamiento específica, ejecuta el siguiente comando:
gcloud container fleet rolloutsequences describe ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es el nombre de la secuencia de lanzamiento.HOST_PROJECT_ID: Es el ID de tu proyecto host de la secuencia de lanzamiento.
El resultado es similar a lo siguiente:
createTime: '2025-10-23T16:40:16.403871189Z'
displayName: my-display-name
name: projects/HOST_PROJECT_ID/locations/global/rolloutSequences/ROLLOUT_SEQUENCE_NAME
stages:
- clusterSelector:
labelSelector: resource.labels.canary=='true'
fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 600s
- fleetProjects:
- projects/FLEET_PROJECT_ID
soakDuration: 300s
uid: 5c5b2ac8-9d76-45f9-92ca-5e6bd3fbcaef
updateTime: '2025-10-23T17:11:57.285678399Z'
Elige qué tipos de actualizaciones realizará GKE en una secuencia de lanzamiento
De forma predeterminada, GKE realiza todos los tipos de actualizaciones de clústeres en una secuencia de lanzamiento. Puedes restringir el alcance de las actualizaciones del clúster en una secuencia de lanzamiento para realizar solo tipos específicos de actualizaciones. Para obtener más información, consulta Cómo elegir los tipos de actualizaciones que GKE realiza en una secuencia de lanzamiento.
Para designar qué tipos de actualizaciones deseas que GKE realice en una secuencia de lanzamiento, sigue estas instrucciones según cómo administres tu secuencia de lanzamiento:
gcloud
Ejecuta el siguiente comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--auto-rollout-scope=TYPES_OF_UPGRADES
Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es el nombre de la secuencia de lanzamiento.TYPES_OF_UPGRADES: Es la lista de actualizaciones que se realizarán, que pueden ser las siguientes:all: De forma predeterminada, GKE realiza todos los tipos de actualizaciones de clúster en la secuencia de lanzamiento.none: GKE no realiza ninguna actualización del clúster en la secuencia de lanzamiento, excepto los lanzamientos de actualizaciones automáticas obligatorias.Uno o más de los siguientes. Si hay varios, coloca los valores en una lista separada por comas sin espacios:
control-plane-patch: GKE realiza actualizaciones automáticas del plano de control del clúster a versiones de parches posteriores.control-plane-minor: GKE realiza actualizaciones automáticas del plano de control del clúster a versiones secundarias posteriores.nodes-patch: GKE realiza actualizaciones automáticas de los nodos del clúster a versiones de parches posteriores.nodes-minor: GKE realiza actualizaciones automáticas de los nodos del clúster a versiones secundarias posteriores.
Por ejemplo, si solo deseas que las versiones de parche se lancen en la secuencia de lanzamiento, especifica la configuración
control-plane-patch,nodes-patch.
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, puedes designar qué tipos de actualizaciones quieres que GKE realice en esa secuencia de lanzamiento agregando al bloque que usaste para crear la secuencia de lanzamiento.
Agrega el siguiente campo al bloque. Puedes agregar el campo en cualquier lugar, excepto entre los bloques stages, que deben ser consecutivos:
auto_upgrade_config {
rollout_creation_scope {
upgrade_types = [
UPGRADE_TYPES
]
}
}
Reemplaza UPGRADE_TYPES por la lista de actualizaciones que se realizarán, que puede incluir una o más de las siguientes opciones (cada una entre comillas):
"CONTROL_PLANE_PATCH": GKE realiza actualizaciones automáticas del plano de control del clúster a versiones de parches posteriores."CONTROL_PLANE_MINOR": GKE realiza actualizaciones automáticas del plano de control del clúster a versiones secundarias posteriores."NODE_PATCH": GKE realiza actualizaciones automáticas de los nodos del clúster a versiones de parches posteriores."NODE_MINOR": GKE realiza actualizaciones automáticas de los nodos del clúster a versiones secundarias posteriores.
Por ejemplo, si solo deseas que las versiones de parche se lancen en la secuencia de lanzamiento, especifica la configuración upgrade_types = ["CONTROL_PLANE_PATCH", "NODE_PATCH"].
Si estableces upgrade_types = [], GKE no realiza ninguna actualización del clúster en la secuencia de lanzamiento, excepto los lanzamientos para las actualizaciones automáticas obligatorias.
Para volver al comportamiento predeterminado en el que GKE realiza todos los tipos de actualizaciones de clúster en la secuencia de lanzamiento, especifica la configuración upgrade_types = ["CONTROL_PLANE_PATCH", "CONTROL_PLANE_MINOR", "NODE_PATCH", "NODE_MINOR"]. O bien, quita el bloque auto_upgrade_config de tu configuración de Terraform.
Cómo modificar una secuencia de lanzamiento
Puedes modificar una secuencia de lanzamiento existente después de crearla. Modifica tu secuencia de lanzamiento con las siguientes instrucciones, según cómo la administres.
gcloud
Si usas la gcloud CLI para administrar la secuencia de lanzamiento, puedes editar el archivo de configuración YAML en el que definiste la secuencia. Por ejemplo, puedes actualizar el tiempo de prueba de una etapa o actualizar la etapa para cambiar el orden de las actualizaciones. Después de editar el archivo, aplica los cambios.
Por ejemplo, si definiste la secuencia de lanzamiento original en un archivo llamado rollout-sequence.yaml, edita el archivo según sea necesario. Luego, ejecuta el siguiente comando:
gcloud container fleet rolloutsequences update test-rollout-sequence \
--display-name="My Updated Rollout Sequence" \
--stage-config=rollout-sequence.yaml
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, modifícala modificando el bloque que usaste para crear la secuencia de lanzamiento.
Ignora un clúster en una secuencia de lanzamiento
Puedes hacer que GKE ignore un clúster en una secuencia de lanzamiento. Puedes ignorar uno o más clústeres en una secuencia de lanzamiento. Para obtener más información, consulta Cómo ignorar un clúster en una secuencia de lanzamiento.
Para que GKE ignore un clúster en una secuencia de lanzamiento, sigue estos pasos:
- Agrega una etiqueta al clúster que deseas que GKE ignore o usa una etiqueta existente. Por ejemplo, puedes hacer que GKE ignore una etiqueta como
statuso ignore una etiqueta cuando tenga un valor específico, comostatus=quarantine. Configura la secuencia de lanzamiento para que ignore los clústeres con esta etiqueta. Para ello, sigue estos pasos, según cómo administres la secuencia de lanzamiento:
gcloud
Ejecuta el siguiente comando:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \ --ignored-clusters-selector="resource.labels.LABEL_TO_IGNORE"Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAME: Es el nombre de la secuencia de lanzamiento.LABEL_TO_IGNORE: Es el nombre de la etiqueta para los clústeres que GKE debe ignorar para la secuencia de lanzamiento.
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, agrega el siguiente campo al bloque que usaste para crear la secuencia de lanzamiento. Puedes agregar el campo en cualquier lugar, excepto entre los bloques
stages, que deben ser consecutivos:ignored_clusters_selector { label_selector = "resource.labels.LABEL_TO_IGNORE" }Reemplaza
LABEL_TO_IGNOREpor el nombre de la etiqueta para los clústeres que GKE debe ignorar en la secuencia de lanzamiento.
En estas instrucciones, se configura GKE para que ignore un tipo de etiqueta en la secuencia de lanzamiento. Si deseas ignorar varias etiquetas o crear expresiones más complejas para ignorar clústeres con etiquetas específicas, puedes pasar valores a este campo con la sintaxis de expresiones de CEL.
Todas las etiquetas deben usar el prefijo resource.labels..
Cómo volver a agregar un clúster a una secuencia de lanzamiento
Si seguiste las instrucciones de la sección anterior para que GKE ignore un clúster en una secuencia de lanzamiento, puedes deshacer esta acción. Si quieres que GKE deje de ignorar los clústeres, quita el selector de ignorar con las siguientes instrucciones, según cómo administres tu secuencia de lanzamiento:
gcloud
Ejecuta el comando siguiente:
gcloud container fleet rolloutsequences update ROLLOUT_SEQUENCE_NAME \
--clear-ignored-clusters-selector
Reemplaza ROLLOUT_SEQUENCE_NAME por el nombre de la secuencia de lanzamiento.
Este comando restablece el selector de ignorar para que GKE no ignore ningún clúster en la secuencia.
Terraform
Si usas Terraform para administrar tu secuencia de lanzamiento, quita el bloque ignored_clusters_selector del bloque que usaste para crear la secuencia de lanzamiento.
O bien, si quieres que GKE no ignore un clúster específico, quita las etiquetas del clúster.
Cómo borrar una secuencia de lanzamiento
Para borrar una secuencia de lanzamiento, ejecuta el siguiente comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME \
--project=HOST_PROJECT_ID
Reemplaza lo siguiente:
ROLLOUT_SEQUENCE_NAMEpor el nombre de la secuencia de lanzamiento.HOST_PROJECT_IDcon el ID de tu proyecto host de la secuencia de lanzamiento.
Cuando borras una secuencia de lanzamiento, se cancelan todos los lanzamientos en curso de esa secuencia. Los clústeres que formaban parte de la secuencia vuelven al comportamiento predeterminado de actualización automática para su canal de versiones inscrito.
Migra una secuencia de lanzamiento existente para usar etapas personalizadas
Si usas la versión de secuenciación del lanzamiento basada en flotas, puedes migrar a una secuencia que use etapas personalizadas creando un nuevo objeto RolloutSequence que haga referencia a tus flotas existentes. Ten en cuenta que esta versión de la secuencia de lanzamiento no es compatible con la consola de Cloud de Confiance .
Para migrar tu secuencia de lanzamiento, completa los siguientes pasos:
De manera opcional, antes de migrar la secuencia, haz una copia de la configuración actual de la secuencia de lanzamiento. Para hacer una copia de la configuración, realiza una de las siguientes acciones:
- CLI de gcloud: Ejecuta el comando para verificar el estado de una secuencia de lanzamiento basada en flotas. Guarda el resultado del comando.
- Terraform: Guarda la configuración de Terraform.
Te recomendamos que no borres la secuencia de lanzamiento basada en la flota para que sea más fácil revertir a la versión anterior de la secuencia de lanzamiento, si es necesario. No es necesario que borres la secuencia de lanzamiento basada en flotas para que funcione la secuencia de lanzamiento con etapas personalizadas, ya que GKE solo se adhiere a la secuencia de lanzamiento con etapas personalizadas cuando ambas existen.
Crea un proyecto Cloud de Confiance by S3NS dedicado para alojar tu secuencia de lanzamiento. Por lo general, este proyecto no forma parte de la secuencia, es decir, no contiene flotas ni clústeres que sí formen parte de la secuencia.
Si deseas que la secuencia de lanzamiento incluya clústeres específicos dentro de una flota, agrega etiquetas a esos clústeres. Este paso es opcional.
Sigue las instrucciones en Crea una secuencia de lanzamiento con etapas personalizadas.
Por ejemplo, el siguiente manifiesto, llamado
rollout-sequence-migrate.yaml, hace referencia a las flotas existentes en una secuencia de lanzamiento anterior. En este manifiesto, se describen tres etapas, incluida una etapa decanaryen la flota deprod:- stage: fleet-projects: - projects/dev soak-duration: 604800s - stage: fleet-projects: - projects/prod soak-duration: 604800s label-selector: canary=true - stage: fleet-projects: - projects/prod soak-duration: 604800s
Inmediatamente después de que definas un nuevo RolloutSequence para tus flotas, GKE comenzará a actualizarlas según la nueva secuencia y quitará la configuración anterior.
Migra una secuencia de lanzamiento con etapas personalizadas a la secuencia de lanzamiento anterior
En esta sección, se describe cómo revertir la secuenciación de lanzamientos con etapas personalizadas al modelo de secuenciación de lanzamientos basado en flotas. Este proceso implica borrar el nuevo RolloutSequence y restablecer la configuración original basada en la flota.
Evita la actualización desordenada durante la migración
Para evitar actualizaciones no deseadas o fuera de orden mientras reconfiguras tu secuencia, aplica una exclusión de mantenimiento a tus clústeres de producción. Con este paso, se pausan temporalmente todas las actualizaciones automáticas en esos clústeres. Por ejemplo, puedes configurar una exclusión de mantenimiento de tipo no upgrades en tus clústeres de producción.
Borra la secuencia de lanzamiento
Borra el objeto RolloutSequence que administra tus clústeres. Esta eliminación desactiva la función de etapas personalizadas.
Para borrar el RolloutSequence, ejecuta el siguiente comando:
gcloud container fleet rolloutsequences delete ROLLOUT_SEQUENCE_NAME
Reemplaza ROLLOUT_SEQUENCE_NAME por el nombre de tu secuencia de lanzamiento.
Restablece la configuración anterior de la secuencia de lanzamiento (sin etapas personalizadas)
Después de borrar el RolloutSequence, puedes restablecer la configuración original basada en la flota. Este proceso implica volver a crear las funciones de clusterupgrade con sus parámetros originales, incluidos los vínculos de upstreamFleet y los tiempos de remojo para cada flota de tu secuencia. Para obtener más información, consulta Crea una secuencia de lanzamiento.
Quita las exclusiones de mantenimiento
Después de restablecer la configuración original de la secuencia de lanzamiento basada en la flota, quita la exclusión de mantenimiento que aplicaste en el primer paso de esta sección. GKE reanuda las actualizaciones automáticas, que ahora se rigen por la secuencia basada en la flota que restableciste.
Pasos siguientes
- Obtén más información sobre las actualizaciones de clústeres con secuencia de lanzamiento.