Actualizar entornos

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se describe cómo actualizar tu entorno a una nueva versión de Cloud Composer o Airflow.

Acerca de las operaciones de actualización

Puedes actualizar la versión de Cloud Composer, la versión de Airflow o ambas al mismo tiempo.

Cuando cambias la versión de Airflow o Cloud Composer que usa tu entorno:

  • Cloud Composer vuelve a desplegar los componentes de tu entorno con nuevas versiones de las imágenes de Cloud Composer.

  • Cloud Composer aplica los cambios de configuración de Airflow, como los paquetes PyPI personalizados o las anulaciones de opciones de configuración de Airflow, si tu entorno los tenía antes de la actualización.

  • Cloud Composer actualiza la conexión de Airflow airflow_db para que apunte a la nueva base de datos de Cloud SQL.

La actualización no cambia la forma en que te conectas a los recursos de tu entorno, como la URL del bucket de tu entorno o el servidor web de Airflow.

Limitaciones de las operaciones de actualización

Las operaciones de actualización tienen las siguientes limitaciones:

  • Las versiones de Cloud Composer se lanzan gradualmente en todas las regiones admitidas por Cloud Composer a lo largo de varios días. Es posible que la versión más reciente de una publicación en curso aún no esté disponible en tu región.

  • No puedes cambiar a una versión anterior de Cloud Composer o Airflow.

  • En la consola, solo puedes actualizar a las versiones más recientes compatibles de Cloud Composer 2. Google Cloud

  • En la CLI de Google Cloud, la API o Terraform, puedes actualizar un entorno a las últimas versiones admitidas, a tres versiones anteriores de Cloud Composer 2, a la última versión de parche de la versión secundaria anterior y a versiones con un plazo de actualización ampliado. No se puede actualizar a otras versiones de Cloud Composer 2, aunque sigan siendo compatibles y se puedan usar para crear un nuevo entorno.

    Ejemplo de opciones de actualización para la CLI de Google Cloud, la API y Terraform:

    • Últimas versiones: composer-2.11.5-airflow-*
    • Tres versiones anteriores de Cloud Composer 2: composer-2.11.4-airflow-*, composer-2.11.3-airflow-* y composer-2.11.2-airflow-*.
    • Último parche de la versión secundaria anterior de Cloud Composer 2: composer-2.10.2-airflow-*
    • Versiones de Cloud Composer 2 con un plazo de actualización ampliado: composer-2.10.2-airflow-*, composer-2.10.1-ariflow-*, composer-2.9.7-airflow-* y otras versiones con un plazo de actualización ampliado.
  • La versión a la que actualices debe ser compatible con la versión de Python de tu entorno.

  • Los límites de cuota de la API de Compute Engine pueden impedir las actualizaciones. En la Google Cloud consola, ve a la página Gestión de identidades y accesos y administración > Cuotas y límites del sistema y comprueba que no se haya superado la cuota de API Compute Engine de CPU. Si se está acercando al umbral de cuota, solicita una ampliación de cuota antes de continuar con la operación de actualización.

  • No puedes actualizar tu entorno si la base de datos de Airflow contiene más de 16 GB de datos. Durante una actualización, se muestra una advertencia si el tamaño de la base de datos de Airflow es superior a 16 GB. En este caso, realiza el mantenimiento de la base de datos para reducir su tamaño.

  • Si usas el mecanismo XCom para transferir archivos, asegúrate de usarlo de acuerdo con las directrices de Airflow. La transferencia de archivos grandes o de un gran número de archivos mediante XCom afecta al rendimiento de la base de datos de Airflow y puede provocar errores al cargar instantáneas o actualizar tu entorno. Puedes usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.

Antes de empezar

  • Te recomendamos que crees una nueva captura del entorno para poder recrearlo si es necesario.

  • Tu cuenta debe tener un rol que pueda activar operaciones de actualización del entorno. Además, la cuenta de servicio del entorno debe tener un rol con permisos suficientes para realizar operaciones de actualización. Para obtener más información, consulta Control de acceso.

  • Puede que veas entradas de metadatos de Compute Engine de los clústeres de GKE que pertenecen a entornos de tu proyecto. Durante la creación y las actualizaciones de clústeres de GKE, Google Kubernetes Engine añade automáticamente entradas de metadatos a nivel de proyecto (google_compute_project_metadata) para monitorizar el uso del intervalo de direcciones IP secundarias. No modifiques ni elimines estas entradas. Google Kubernetes Engine los gestiona automáticamente.

Comprobar que el entorno esté actualizado

Cloud Composer muestra advertencias cuando la imagen de tu entorno se acerca a la fecha de finalización del soporte completo. Puedes usar estas advertencias para mantener siempre tu entorno compatible.

Se muestra un mensaje de obsolescencia en la página Detalles del entorno
Imagen 1. Se muestra un mensaje de obsolescencia en la página de detalles del entorno

Cloud Composer registra la versión de la imagen de Cloud Composer en la que se basa tu entorno. Cuando se acerque la fecha de finalización del servicio, verás una advertencia en la lista de entornos y en la página Detalles del entorno.

Para comprobar si tu entorno está actualizado, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En el campo Versión de la imagen, se muestra uno de los siguientes mensajes:

    • Versión más reciente disponible. Tu imagen del entorno es totalmente compatible.

    • Hay una nueva versión disponible. Tu imagen de entorno es totalmente compatible y puedes actualizarla a una versión posterior.

    • Esta versión de imagen dejará de ser compatible en... La imagen de tu entorno se acerca al final del periodo de asistencia completa.

    • Esta versión dejará de ser compatible el... Tu entorno ha superado el periodo de asistencia completa.

gcloud

Esta función no está disponible en Google Cloud CLI. También puedes ver las actualizaciones sugeridas, donde se muestran las nuevas versiones disponibles.

API

Esta función no está disponible a través de la API. También puedes ver las actualizaciones sugeridas, donde se muestran las nuevas versiones disponibles.

Ver las actualizaciones sugeridas

Cloud Composer proporciona una lista de versiones de Cloud Composer a las que puedes actualizar tu entorno.

Para ver las versiones de Cloud Composer sugeridas para una actualización, siga estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno y haz clic en Actualizar versión de la imagen.

  4. Para ver la lista de versiones sugeridas, haz clic en el menú desplegable Cloud Composer Versión de imagen.

gcloud

gcloud composer environments list-upgrades \
  ENVIRONMENT_NAME \
  --location LOCATION

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.

Ejemplo:

gcloud composer environments list-upgrades example-environment \
  --location us-central1

API

Puede ver las versiones disponibles de una ubicación. Para ello, crea una solicitud de la API imageVersions.list.

Por ejemplo:

// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions

Comprobar si hay conflictos con paquetes de PyPI

Puedes comprobar si los paquetes de PyPI instalados en tu entorno tienen algún conflicto con los paquetes preinstalados en la nueva imagen de Cloud Composer.

Si la comprobación se realiza correctamente, significa que no hay conflictos en las dependencias del paquete de PyPI entre la versión actual y la especificada. Sin embargo, es posible que la operación de actualización no se realice correctamente por otros motivos.

Consola

Para ejecutar una comprobación de actualización en tu entorno, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno, busca la entrada Versión de la imagen y haz clic en Actualizar.

  4. En el cuadro de diálogo Actualización de la versión del entorno, en la lista desplegable Nueva versión, selecciona la versión de Cloud Composer a la que quieras actualizar.

  5. En la sección Compatibilidad de paquetes de PyPI, haga clic en Buscar conflictos.

  6. Espera a que se complete la comprobación. Si hay conflictos de dependencias de paquetes de PyPI, los mensajes de error que se muestran contienen detalles sobre los paquetes y las versiones de paquetes en conflicto.

gcloud

Para ejecutar una comprobación de actualización de tu entorno, ejecuta el comando environments check-upgrade con la versión de la imagen de Cloud Composer a la que quieras actualizar.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version VERSION

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • VERSION con la nueva versión de imagen de Cloud Composer a la que quieras actualizar, en formato composer-a.b.c-airflow-x.y.z. Puedes usar todos los alias de versión.

Ejemplo:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-2.14.4-airflow-2.10.5

Ejemplo:

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.14.4-airflow-2.10.5. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...

Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.

También puedes ejecutar una comprobación de actualización de forma asíncrona. Usa el argumento --async para hacer una llamada asíncrona y, a continuación, comprueba el resultado con el comando gcloud composer operations describe.

API

Crea una solicitud de la API environments.checkUpgrade.

Especifique la versión de la imagen en el campo imageVersion:

{
  "imageVersion": "VERSION"
}

Sustituye VERSION por la nueva versión a la que quieras actualizar, en formato composer-a.b.c-airflow-x.y.z.

Comprobar si hay conflictos con Cloud Composer 3

Aunque no es posible migrar tu entorno de Cloud Composer 2 a Cloud Composer 3, puedes comprobar si hay problemas de compatibilidad mediante una comprobación de actualización. Te recomendamos que lo hagas antes de migrar a Cloud Composer 3.

Para comprobar la compatibilidad con Cloud Composer 3, haz una comprobación de actualización normal de tu entorno de Cloud Composer 2 y especifica una versión de Cloud Composer 3 como destino.

Cada conflicto notificado puede ser de los siguientes tipos:

  • BLOCKING informa de los conflictos de elementos de configuración de entornos incompatibles que no se admiten en Cloud Composer 3. Te recomendamos que resuelvas estos conflictos antes de iniciar una migración a Cloud Composer 3.

  • Los conflictos de NON_BLOCKING informan de los elementos de configuración del entorno que son diferentes en Cloud Composer 3 y que pueden provocar un comportamiento inesperado. Por ejemplo, los cambios en los valores predeterminados, como las ventanas de mantenimiento predeterminadas, se notifican como conflictos que no bloquean. Te recomendamos que compruebes si estos conflictos pueden causar problemas antes de iniciar el proceso de migración.

  • Los conflictos de paquetes de PyPI también se notifican como parte de esta comprobación. Se informan por separado de los conflictos de configuración, de la misma forma que en una comprobación de compatibilidad de paquetes de PyPI normal.

Consola

Para comprobar la compatibilidad con Cloud Composer 3, usa la CLI de gcloud o la API de Cloud Composer. Google Cloud La consola solo comprueba la compatibilidad de los paquetes de PyPI.

gcloud

Para comprobar la compatibilidad con Cloud Composer 3, ejecuta el comando environments check-upgrade y especifica una versión de Cloud Composer 3 como destino.

gcloud composer environments check-upgrade \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version COMPOSER_3_VERSION

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • COMPOSER_3_VERSION con la versión y la compilación de Airflow a las que quieras actualizar, en formato airflow-x.y.z-build.t. Puedes usar todos los alias de versión.

Ejemplo:

gcloud composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2

Ejemplos de mensajes de conflicto:

...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...

Como alternativa, puedes ejecutar esta comprobación de forma asíncrona. Usa el argumento --async para hacer una llamada asíncrona y, a continuación, comprueba el resultado con el comando gcloud composer operations describe.

API

Crea una solicitud de la API environments.checkUpgrade.

Especifique la versión de la imagen en el campo imageVersion:

{
  "imageVersion": "COMPOSER_3_VERSION"
}

Sustituye COMPOSER_3_VERSION por la versión y la compilación de Airflow a las que quieras actualizar, en el formato airflow-x.y.z-build.t. Puedes usar todos los alias de versión.

Actualizar el entorno

Para actualizar tu entorno a una versión posterior de Cloud Composer o Airflow, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. Busca el elemento Versión de imagen y haz clic en Actualizar.

  5. En el menú desplegable Versión de imagen, selecciona la versión de Cloud Composer a la que quieras actualizar.

  6. Haz clic en Actualizar.

gcloud

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version VERSION

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • VERSION con la nueva versión de imagen de Cloud Composer a la que quieras actualizar, en formato composer-a.b.c-airflow-x.y.z. También puedes usar todos los alias de versión.

Por ejemplo:

gcloud composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-2.14.4-airflow-2.10.5

API

  1. Crea una solicitud de la API environments.patch.

  2. En esta solicitud:

    1. En el parámetro updateMask, especifique la máscara config.softwareConfig.imageVersion.

    2. En el cuerpo de la solicitud, en el campo imageVersion, especifica la nueva versión a la que quieres actualizar.

Por ejemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-2.14.4-airflow-2.10.5"
      }
    }
  }

Terraform

El campo image_version del bloque config.software_config controla la imagen de Cloud Composer de tu entorno. En este campo, especifica una nueva imagen de Cloud Composer.

  resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "VERSION"
    }
  }
}

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno. La nueva versión de imagen de Cloud Composer a la que quieras actualizar, en formato composer-a.b.c-airflow-x.y.z. También puedes usar todos los alias de versión.

Ejemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-2.14.4-airflow-2.10.5"
    }
  }
}

Siguientes pasos