Actualiza entornos

En esta página, se describe cómo actualizar la versión de Airflow o la versión de Cloud Composer que ejecuta tu entorno.

Durante la actualización, Cloud Composer realiza estas acciones:

  • Vuelve a implementar los grupos de trabajadores y programadores de Airflow en un nuevo espacio de nombres de Kubernetes. Una vez que se complete la actualización, Airflow usará una base de datos de Cloud SQL nueva. El nombre de la base de datos coincide con el espacio de nombres de Kubernetes. Se conserva el historial de ejecuciones del DAG.

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

Estos cambios afectan la forma de acceder a los pods y conectarse a la base de datos de Cloud SQL.

  • Para acceder a los pods del clúster de GKE después de la actualización, debes usar comandos kubectl que tengan en cuenta el espacio de nombres. Por ejemplo, para mostrar los pods en el clúster, usa kubectl get pods -A. Para ejecutar un comando en un pod, usa kubectl exec -n <NAMESPACE> ....
  • Si usas conexiones y cargas de trabajo de Airflow que hacen referencia directamente al proxy de SQL, usa el espacio de nombres predeterminado como parte del nombre de host: airflow-sqlproxy-service.default, no airflow-sqlproxy-service.

La actualización de Cloud Composer no cambia la conexión con los recursos del entorno, como direcciones IP de VM de nodo de Google Kubernetes Engine, instancia de Cloud SQL, bucket de Cloud Storage o nombre de dominio del servidor web de Airflow.

Antes de comenzar

  • Actualmente, la actualización de los entornos está en vista previa. Usa esta función con precaución en entornos de producción.

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

  • Detén todos los DAG y espera a que las tareas en curso finalicen antes de la actualización.

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

  • La combinación de Cloud Composer y Airflow a la que estás actualizando debe ser una versión actualizada.

    • Para ver las actualizaciones disponibles, consulta cómo ver las actualizaciones disponibles. Para obtener las últimas funciones y correcciones, considera obtener la versión más reciente de Cloud Composer.
    • Para obtener la lista de paquetes y personalizaciones de PyPI en una versión compatible, consulta la lista de versiones de Cloud Composer.

      Antes de realizar la actualización, asegúrate de conocer las diferencias entre las versiones actuales de Airflow y Cloud Composer, y las versiones a las que deseas actualizar. Los cambios incompatibles pueden hacer que los DAG se rompan.

Limitaciones

  • No puedes pasar a una versión anterior de Cloud Composer o Airflow.
  • Cloud Composer admite la transferencia manual de DAG y la configuración de tus entornos de Airflow 1.10.* a los de Airflow 2. No es posible realizar actualizaciones in situ en Airflow 2 para entornos con Airflow 1.10.*.
  • Solo puedes actualizar a la última versión de Cloud Composer dentro de la misma versión principal, como composer-1.12.4-airflow-1.10.10 a composer-1.13.0-airflow-1.10.10. No se permite la actualización de composer-1.4.0-airflow-1.10.0 a composer-2.0.0-airflow-1.10.0 porque la versión principal de Cloud Composer cambia de 1 a 2.
  • La versión con imágenes que actualices debe ser compatible con la versión de Python actual de tu entorno.
  • No puedes actualizar el 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.

Mensajes de baja

Cloud Composer cancela las advertencias cuando tu imagen del entorno se acerca a la fecha de finalización de la asistencia. Puedes usar estas advertencias para mantener siempre tus entornos en el período de asistencia completo.

Mensaje de baja

Cloud Composer realiza un seguimiento de la versión de la imagen de Cloud Composer en la que se basa el entorno. Cuando la imagen se acerca a la fecha de finalización de la compatibilidad, puedes ver una advertencia en la lista de entornos y en la página Detalles del entorno.

Para comprobar si la imagen del entorno está actualizada, sigue estos pasos:

  1. Abre la página Entornos en Google Cloud Console.

    Abrir la página Entornos

  2. Haz clic en el nombre del entorno para ver sus detalles.

  3. En Configuración del entorno, busca el campo Versión de la imagen.

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

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

    • Hay una nueva versión disponible. La imagen del entorno es compatible por completo y puedes actualizarla a una versión posterior.

    • La compatibilidad con esta versión de imagen termina en... La imagen del entorno se acerca al final del período de asistencia completo.

    • Esta versión no es compatible desde... Tu entorno ya pasó el período de asistencia completo.

Conoce las actualizaciones disponibles

Para ver las versiones de Cloud Composer a las que puedes actualizar, sigue estos pasos:

Console

  1. Abre la página Entornos en Google Cloud.

    Abrir la página Entornos

  2. Haz clic en el Nombre del entorno.

  3. En la pestaña Configuración del entorno, haz clic en Actualizar versión con imágenes.

  4. Para las versiones disponibles, haz clic en el menú desplegable Versión con imágenes de Cloud Composer.

gcloud

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

Donde:

  • ENVIRONMENT_NAME es el nombre del entorno.
  • LOCATION es la región de Compute Engine en la que se encuentra el entorno.

Por ejemplo:

gcloud beta composer environments list-upgrades test-environment \
    --location us-central1
┌─────────────────────────────────────────────────────────────────────────────┐
│                              AVAILABLE UPGRADES                             │
├──────────────────────────────┬──────────────────┬───────────────────────────┤
│        IMAGE VERSION         │ COMPOSER DEFAULT │ SUPPORTED PYTHON VERSIONS │
├──────────────────────────────┼──────────────────┼───────────────────────────┤
│ composer-1.4.0-airflow-1.9.0 │ True             │ 2,3                       │
└──────────────────────────────┴──────────────────┴───────────────────────────┘

API

Para ver las versiones disponibles con la API de REST de Cloud Composer, crea una solicitud a la API imageVersions.list y proporciona el proyecto y la ubicación con el formato projects/{projectId}/locations/{locationId}.

Por ejemplo:

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

{
  "imageVersions": [
    {
      "imageVersionId": "composer-1.4.2-airflow-1.10.0",
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    },
    {
      "imageVersionId": "composer-1.4.2-airflow-1.9.0",
      "isDefault": true,
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    }
  ]
} 

Comprueba si hay conflictos de paquetes de PyPI antes de la actualización

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

Una verificación correcta significa que no hay conflictos de dependencias de paquetes de PyPI entre la versión actual y la especificada. Ten en cuenta que, es posible que una operación de actualización no sea exitosa por otras razones.

Console

Para ejecutar una verificación de actualización de tu entorno, haz lo siguiente:

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

    Ir a Entornos

  2. Selecciona tu entorno.

  3. Ve a la pestaña Configuración del entorno, ubica 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 Versión nueva, selecciona la versión de Cloud Composer a la que deseas actualizar.

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

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

gcloud

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

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno
  • LOCATION por la región de Compute Engine en la que se encuentra el entorno
  • COMPOSER_IMAGE por la versión de imagen de Cloud Composer a la que deseas actualizar

Ejemplo:

gcloud beta composer environments check-upgrade example-environment \
  --location us-central1 \
  --image-version composer-1.16.6-airflow-1.10.15

Resultado de ejemplo:

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

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

Como alternativa, puedes ejecutar una verificación de actualización de forma asíncrona. Usa el argumento --async para realizar una llamada asíncrona y, luego, verifica el resultado con el comando gcloud composer operations describe.

API

Crea una solicitud a la API environments.checkUpgrade.

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

{
  "imageVersion": "COMPOSER_IMAGE"
}

Reemplaza COMPOSER_IMAGE por la versión de imagen de Cloud Composer a la que deseas actualizar.

Actualiza la versión de Cloud Composer

Para actualizar la versión de Cloud Composer que se ejecuta en tu entorno. sigue estos pasos:

Console

  1. Abre la página Entornos en Google Cloud.

    Abrir la página Entornos

  2. Haz clic en el Nombre del entorno para modificarlo.

  3. En la pestaña Configuración del entorno, haz clic en Actualizar versión con imágenes.

  4. Haz clic en el menú desplegable Versión con imágenes de Cloud Composer y selecciona una versión.

  5. Haga clic en Enviar.

gcloud

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

Donde:

  • ENVIRONMENT_NAME es el nombre del entorno.
  • LOCATION es la región de Compute Engine donde se encuentra el entorno.
  • VERSION es la versión de Cloud Composer y la versión de Airflow que se usará para tu entorno en el formato composer-a.b.c-airflow-x.y.z o composer-a.b.c-airflow-x.y. Si no especificas el parche de Airflow, se usará la versión de parche más reciente disponible para la versión principal y secundaria.

Por ejemplo:

gcloud beta composer environments update test-environment \
    --location us-central1 --image-version composer-latest-airflow-1.10.1 

API

Para actualizar con la API de REST de Cloud Composer, crea una solicitud a la API environments.patch. Proporciona la versión en el formulario composer-a.b.c-airflow-x.y.z.

Por ejemplo:

PATCH https://composer.googleapis.com/v1beta1/projects/test-project/locations/us-central1/environments/test-environment?updateMask=config.software_config.image_version

El cuerpo de la solicitud incluye imageVersion:

{
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.6.0-airflow-1.10.1"
    }
  }
}

Actualiza la versión de Airflow

Cuando tu entorno ejecuta la última versión de Cloud Composer, puedes usar el SDK de Cloud a fin de actualizar solo la versión de Airflow, por ejemplo, para actualizar de composer-1.6.1-airflow-1.9.0 a composer-1.6.1-airflow-1.10.0.

gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION --airflow-version VERSION

Donde:

  • ENVIRONMENT_NAME es el nombre del entorno.
  • LOCATION es la región de Compute Engine donde se encuentra el entorno.
  • VERSION es la versión de Airflow que se usará para tu entorno en el formato x.y.z o x.y.

Por ejemplo:

gcloud beta composer environments update test-environment \
--location us-central1 --airflow-version=1.10.1