Administra las actualizaciones de los clústeres en entornos de producción


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.

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.

  1. 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.
  2. 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 comando create, puedes usar las marcas de las instrucciones para crear una secuencia de lanzamiento.

  3. Agrega cada clúster a un permiso.

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.

  1. 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 y FIRST_SCOPE_PROJECT_ID por el ID del proyecto en el que se aloja el primer permiso.

  2. 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 y SECOND_SCOPE_PROJECT_ID por el ID del proyecto en el que se aloja el segundo permiso.

  3. 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 y THIRD_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 ser k8s_control_plane o k8s_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.

¿Qué sigue?