En esta página, se muestra cómo administrar las actualizaciones de los clústeres de GKE mediante la secuencia de lanzamiento. Para obtener más información, consulta Acerca de las actualizaciones de clústeres con secuencia de lanzamiento.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa la CLI de gcloud.
- Asegúrate de haber habilitado la API de Anthos en los proyectos host de la flota. Si no tienes habilitada la API de Anthos para tus proyectos host de flota, puedes pedirle al equipo de cuentas que te inscriba en una prueba gratuita de Anthos a fin de probar la función de secuencia de lanzamiento. Si te inscribes en la prueba gratuita para probar esta función, asegúrate de limpiarla cuando termines de usarla en la vista previa privada.
- Asegúrate de haber habilitado las APIs necesarias para las flotas. Estas APIs deben estar habilitadas en los proyectos host de tu flota.
- Asegúrate de tener los permisos de IAM necesarios para el registro del clúster. Debes otorgar los siguientes permisos:
- Permisos de registro del clúster en los proyectos host de tu flota.
- Permisos de administrador de clústeres para que se registren los clústeres de GKE.
- Permisos de registro de clústeres entre proyectos para que los clústeres de GKE se registren en una flota de un proyecto diferente.
Configura una secuencia de lanzamiento
En este documento, se explica cómo usar las flotas y los permisos de la flota para organizar clústeres y crear secuencias de lanzamiento.
Con la secuencia de lanzamiento, eliges el orden y el momento en que se lanzan las versiones en los conjuntos de clústeres en el mismo canal de versiones. Puedes crear una secuencia de hasta tres permisos.
Para crear una secuencia de lanzamiento, tus clústeres deben estar organizados en alcances. Para obtener orientación sobre cómo organizar los clústeres en permisos, consulta este ejemplo. Una vez que están organizados en permisos, puedes crear una secuencia de lanzamiento definiendo las relaciones ascendentes de alcance y el tiempo de prueba de cada permiso. Para obtener más información sobre cómo funciona esto, consulta Cómo se crea una secuencia de lanzamiento.
Organiza tus clústeres en permisos
En una secuencia de lanzamiento, todos los clústeres de todos los permisos deben estar inscritos en el mismo canal de versiones y estar en la misma versión secundaria. Si no se cumplen estos requisitos y hay discrepancias de versión entre los clústeres, esto puede causar problemas con el lanzamiento de la versión. Para obtener más información, consulta Elegibilidad de lanzamiento.
Los permisos son una unidad organizativa dentro de una flota. Los clústeres se pueden registrar en una flota y un permiso alojados en un proyecto diferente. Puedes crear una secuencia de lanzamiento con permisos en varias flotas.
Si ya organizaste tus clústeres en permisos, puedes omitir los siguientes pasos y continuar con Crea una secuencia de lanzamiento.
- Para cada clúster de la secuencia, registra tu clúster con una flota. El clúster debe estar registrado en la flota del proyecto en el que crearás el permiso para este clúster. Si deseas registrar un clúster en una flota de un proyecto host diferente, asegúrate de haber configurado los permisos necesarios para el registro entre proyectos.
Crea entre 2 y 3 permisos para organizar los clústeres. Ejecuta el comando en el proyecto host de la flota respectiva del permiso. Puedes tener hasta tres permisos en una secuencia de lanzamiento. Repite el comando para cada permiso que desees crear.
Consulta la referencia de
gcloud alpha container fleet scopes create
para obtener una lista completa de marcas. Con el comandocreate
, puedes usar las marcas de las instrucciones para crear una secuencia de lanzamiento.
Crea una secuencia de lanzamiento
Una secuencia de lanzamiento se organiza como una lista vinculada. Para obtener más información, consulta Cómo se crea una secuencia de lanzamiento. Cuando creas una secuencia de lanzamiento, estableces las siguientes propiedades para cada permiso:
- Alcance ascendente: la ruta del recurso del alcance ascendente en el formato
projects/{project-number}/locations/global/scopes/{scope-name}
. No estableces un permiso ascendente para el primer alcance en una secuencia. El alcance ascendente califica las versiones nuevas para el alcance descendente. - Tiempo de prueba: el tiempo de prueba para un permiso es el tiempo que transcurre desde que se completan las actualizaciones (o el lanzamiento tarda 30 días) y el momento en que las actualizaciones pueden comenzar en el alcance descendente. Para obtener más información, consulta Cómo funciona la calificación de versión en una secuencia de lanzamiento.
Puedes establecer estas propiedades cuando creas o actualizas un permiso. En las siguientes instrucciones, se usa el comando update
; sin embargo, puedes establecer las mismas propiedades cuando creas un permiso con el comando create
.
Para cada uno de los siguientes comandos, reemplaza SOAK_TIME
por el tiempo de prueba del permiso que estás actualizando.
Configura el tiempo de prueba para el primer clúster de la secuencia:
gcloud alpha container fleet scopes update FIRST_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=FIRST_SCOPE_PROJECT_ID
Reemplaza
FIRST_SCOPE
por la ruta completa del primer permiso yFIRST_SCOPE_PROJECT_ID
por el ID del proyecto en el que se aloja el primer permiso.Configura el alcance ascendente y el tiempo de prueba para el segundo permiso en la secuencia:
gcloud alpha container fleet scopes update SECOND_SCOPE \ --upstream-scope=projects/FIRST_SCOPE_PROJECT_NUMBER/locations/global/scopes/FIRST_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=SECOND_SCOPE_PROJECT_ID
Reemplaza
SECOND_SCOPE
por la ruta de acceso completa del primer permiso ySECOND_SCOPE_PROJECT_ID
por el ID del proyecto en el que se aloja el segundo permiso.Si deseas tener tres alcances en una secuencia de lanzamiento, configura el alcance ascendente para el tercer permiso en la secuencia (opcional):
gcloud alpha container fleet scopes update THIRD_SCOPE \ --upstream-scope=projects/SECOND_SCOPE_PROJECT/locations/global/scopes/SECOND_SCOPE \ --default-upgrade-soaking=SOAK_TIME \ --project=THIRD_SCOPE_PROJECT_ID
Reemplaza
THIRD_SCOPE
por la ruta de acceso completa del primer permiso yTHIRD_SCOPE_PROJECT_ID
por el ID del proyecto en el que se aloja el tercer permiso.
Verifica la secuencia de lanzamiento
Describe el primer alcance en la secuencia para confirmar la configuración. Para cada permiso, cuando describes el alcance, puedes ver el alcance ascendente y el alcance descendente.
Controla el proceso de lanzamiento de la versión
Las actualizaciones de clústeres con GKE ofrecen varios mecanismos para el control manual del proceso. Además de estos controles, tienes formas adicionales de controlar las actualizaciones del clúster con la secuencia de lanzamiento. En esta sección, verás cómo puedes ejercer el control de las actualizaciones si es necesario.
Verifica el estado de una secuencia de lanzamiento
Verifica el estado de una secuencia de lanzamiento:
gcloud alpha container fleet scopes describe SCOPE_NAME \
--show-linked-cluster-upgrade
--project=SCOPE_PROJECT_ID
Reemplaza SCOPE_NAME
por el nombre de cualquier permiso en la secuencia de lanzamiento y SCOPE_PROJECT_ID
por el ID del proyecto de este permiso. Si la secuencia de lanzamiento tiene permisos entre proyectos en diferentes flotas, debes tener los permisos necesarios para ejecutar este comando.
En el resultado, los atributos clusterUpgrade(s).spec
y clusterUpgrade(s).state
contienen información adicional sobre la actualización del clúster, como el tiempo de prueba, las anulaciones de actualización del clúster y el estado de actualización. Para obtener más información sobre qué información se proporciona con este comando, consulta Verifica el estado del lanzamiento de la versión en una secuencia.
Si solo necesitas información sobre un permiso en la secuencia, reemplaza la marca --show-linked-cluster-upgrade
por --show-cluster-upgrade
.
Consulta la referencia de gcloud alpha container fleet scopes describe
para obtener una lista completa de marcas.
Para ver el estado de los clústeres individuales dentro de un permiso, ejecuta el siguiente comando en el proyecto de la flota en el que se encuentra el permiso:
gcloud alpha container fleet features describe clusterupgrade
Soluciona problemas de elegibilidad para el lanzamiento
Si todos los clústeres de una secuencia de lanzamiento no tienen el mismo objetivo de actualización, es posible que GKE no pueda continuar con las actualizaciones de clústeres, ya que los clústeres en el alcance ascendente no validan el objetivo de actualización necesario para los clústeres en el alcance descendente.
Para verificar si tu secuencia de lanzamiento tiene problemas de elegibilidad de lanzamiento, verifica el estado de la secuencia de lanzamiento. Si un permiso no es apto, sigue las instrucciones para ver el estado de los clústeres individuales en un permiso.
Si un clúster no es apto porque está en una versión anterior (por ejemplo, la mayoría de los clústeres del alcance se actualizan de la versión 1.23 a la 1.24 y un clúster está en la versión 1.22), puedes actualizar de forma manual a 1.24 para resolver la discrepancia de la versión.
Si un clúster no es apto porque está en una versión posterior (por ejemplo, la mayoría de los clústeres del alcance se actualizan de la versión 1.23 a la 1.24 y un clúster está en la versión 1.25), no puedes actualizar de forma manual el clúster para resolver la discrepancia de versión.
Para avanzar de forma inmediata en las actualizaciones de clústeres, quita los clústeres con el estado INELIGIBLE
mediante las instrucciones a fin de avanzar los lanzamientos parcialmente aptos.
Cambia el tiempo de prueba
Si deseas que el tiempo de prueba de un lanzamiento de versión específico sea diferente del tiempo de prueba configurado para la secuencia, puedes cambiarlo mediante la marca --add-upgrade-soaking-override
con el siguiente comando:
gcloud alpha container fleet scopes update SCOPE_NAME \
--add-upgrade-soaking-override=SOAK_TIME \
--upgrade-selector=name=UPGRADE_NAME,version=VERSION
Reemplaza lo siguiente:
SCOPE_NAME
: Es el nombre del alcance en el que deseas anular el tiempo de prueba que se usa para el lanzamiento de una versión específica.SOAK_TIME
: El tiempo de prueba que no sea el predeterminado (por ejemplo, “0d” si deseas omitir el tiempo de prueba para un lanzamiento de versión).UPGRADE_NAME
: El nombre de la actualización, puede serk8s_control_plane
ok8s_node
.VERSION
: Es la versión de GKE en la que deseas el tiempo de prueba después del lanzamiento en este permiso, por ejemplo, 1.25.2-gke.400.
Por ejemplo, si ya calificaste una versión nueva y estás listo para que las actualizaciones comiencen en el siguiente permiso, puedes establecer el tiempo de prueba en cero. También puedes usarla si deseas obtener más tiempo que el tiempo de prueba predeterminado para calificar una versión específica.
Cambia el orden de una secuencia
Si deseas cambiar el orden de una secuencia, usa los comandos de las instrucciones para crear una secuencia de lanzamiento a fin de actualizar los permisos ascendentes.
Retrasa la finalización del lanzamiento de la versión del permiso
Si necesitas evitar de forma temporal un permiso para completar el lanzamiento de una versión nueva en sus clústeres, puedes agregar una exclusión de mantenimiento a cualquiera de los clústeres que no lo tengan se actualizó a la versión de destino. Esto puede pausar un permiso para continuar con su tiempo de prueba o el alcance descendente durante un máximo de 30 días. Después de 30 días, el alcance comenzará a prueba.
También puedes cambiar el tiempo de prueba para ese alcance a 30 días a fin de maximizar el tiempo que espera la secuencia de lanzamiento antes de continuar con el siguiente permiso.
Si necesitas retrasar más las actualizaciones a partir del siguiente permiso, puedes usar las exclusiones de mantenimiento para los clústeres del siguiente permiso.
Lanza lanzamientos parcialmente aptos
Si las actualizaciones del clúster en un alcance aún no alcanzaron el límite de 30 días y no finalizarán debido a problemas de elegibilidad para el lanzamiento (por ejemplo, discrepancias de versión dentro de un permiso), puedes hacer lo siguiente: quitar un clúster de un permiso para completar el lanzamiento de la versión y comenzar el tiempo de prueba, o pasar al siguiente permiso en la secuencia de lanzamiento. También puedes quitar un clúster de un permiso por otros motivos, por ejemplo, si el uso de este clúster ya no está relacionado con los otros clústeres del alcance.
Sigue las instrucciones para quitar clústeres de los permisos.
Una vez que hayas quitado todos los clústeres que impiden que se complete el lanzamiento de la versión de un permiso, el lanzamiento de la versión del alcance se completará. Para confirmar esto, sigue las instrucciones en Verifica el estado de un lanzamiento de versión.
Borra una secuencia
Para borrar una secuencia, usa el siguiente comando a fin de quitar la asociación de alcance ascendente para el segundo permiso (y tercer alcance, si esta secuencia de lanzamiento incluye tres permisos):
gcloud alpha container fleet scopes update SCOPE_NAME --reset-upstream-scope
Reemplaza SCOPE_NAME
por el nombre que deseas borrar.
Realiza una limpieza
Para evitar cargos de facturación inesperados, si te inscribiste en una prueba gratuita de la API de Anthos para probar la función de secuencia de lanzamiento, asegúrate de inhabilitar la API una vez que termines de probar esta función en vista previa privada. Debes inhabilitar la API antes de que se quite el proyecto host de la flota de la lista de entidades permitidas para esta función.