環境をアップグレードする

Cloud Composer 1 | Cloud Composer 2

このページでは、環境を新しい Cloud Composer または Airflow バージョンにアップグレードする方法について説明します。

アップグレード操作について

環境で使用している Airflow または Cloud Composer のバージョンを変更すると、環境は次のようにアップグレードされます。

  1. Cloud Composer は、新しいバージョンの Cloud Composer イメージを使用して環境のコンポーネントを再デプロイします。
  2. Cloud Composer は、アップグレード前に環境内で Airflow 構成の変更(カスタム PyPI パッケージや Airflow 構成オプションのオーバーライドなど)が行われている場合にそれを適用します。
  3. Cloud Composer は、新しい Cloud SQL データベースを指定するために Airflow airflow_db 接続を更新します。

アップグレードしても、環境内でのリソース(環境のバケットの URL、Airflow ウェブサーバーなど)への接続方法は変わりません。

始める前に

  • アップグレードはプレビュー版です。この機能は本番環境では慎重に使用してください。

  • 特定のバージョンに含まれるプロバイダ パッケージのバージョンを確認できます。変更の詳細については、リリースノートをご覧ください。

  • Cloud Composer や Airflow を以前のバージョンにダウングレードすることはできません。

  • 必要に応じて環境を再作成できるように、環境の新しいスナップショットを作成することをおすすめします。

  • 最新バージョン以外のバージョンにアップグレードするには、Google Cloud CLI、API、または Terraform を使用します。Google Cloud コンソールでは、最新バージョンにのみアップグレードできます。

  • Cloud Composer バージョン、Airflow バージョン、またはその両方を同時にアップグレードできます。

  • Cloud Composer は、任意のバージョンから最新バージョン、3 つの以前のバージョンの Cloud Composer、およびアップグレード タイムラインが延長されたバージョンにのみアップグレードできます。

  • 環境のアップグレード オペレーションをトリガーできるロールを付与されている必要があります。また、環境のサービス アカウントには、アップグレード オペレーションを実行するための十分な権限を持つロールが必要です。詳細については、アクセス制御をご覧ください。

  • アップグレードするバージョンの PyPI パッケージの一覧については、バージョンのリストをご覧ください。

  • Airflow データベースに 16 GB を超えるデータが含まれている場合は、環境をアップグレードできません。アップグレード中に Airflow データベースのサイズが 16 GB を超えると、警告が表示されます。その場合、データベースのメンテナンスを実行して、データベースのサイズを減らします。

  • アップグレードするバージョンは、環境内の現在の Python バージョンをサポートしている必要があります。

  • Google Cloud コンソールで IAM と管理 > 割り当てとシステム制限ページに移動し、Compute Engine Engine API CPU の割り当てを超過していないことを確認します。割り当てしきい値に近づいている場合は、アップグレード オペレーションを続行する前に、割り当ての延長をリクエストします。

環境が最新であることを確認する

Cloud Composer では、環境イメージがサポート終了日に近づくと、警告が表示されます。これらの警告を利用して、環境のサポートを常に維持することができます。

[環境の詳細] ページに非推奨メッセージが表示されます
図 1. [環境の詳細] ページに非推奨メッセージが表示されます

Cloud Composer では、環境の基盤となる Cloud Composer イメージのバージョンを追跡します。サポート終了日に近づくと、環境のリストと [環境の詳細] ページに警告が表示されます。

環境が最新かどうかを確認するには、次のようにします。

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [イメージのバージョン] フィールドに、次のいずれかのメッセージが表示されます。

    • 最新の使用可能なバージョン。環境イメージが完全にサポートされます。

    • 新しいバージョンがあります。環境イメージが完全にサポートされ、新しいバージョンにアップグレードできます。

    • このイメージ バージョンのサポートは(特定の日時)に終了します。環境イメージは、完全なサポート期間の終盤に近づいています。

    • このバージョンは(特定の日時)現在サポートされていません。環境は完全なサポート期間を超えています。

gcloud

この機能は、Google Cloud CLI では使用できません。代わりに、利用可能なアップグレードを表示できます。ここでは、利用可能な新しいバージョンが表示されます。

API

API ではこの機能を使用できません。代わりに、利用可能なアップグレードを表示できます。ここでは、利用可能な新しいバージョンが表示されます。

利用可能なアップグレードを表示する

アップグレードできる Cloud Composer のバージョンを表示するには、次の手順を行います。

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の構成] タブに移動し、[イメージ バージョンをアップグレード] をクリックします。

  4. 利用可能なバージョンの一覧については、Cloud Composer の [イメージのバージョン] プルダウン メニューをクリックしてください。

gcloud

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

次のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。

例:

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

API

ロケーションの利用可能なバージョンを表示できます。これを行うには、imageVersions.list API リクエストを作成します。

次に例を示します。

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

アップグレード前に PyPI パッケージの競合を確認する

現在の環境にインストールされている PyPI パッケージが、新しい Cloud Composer イメージにプリインストールされているパッケージと競合していないか確認できます。

チェックにパスするとは、PyPI パッケージの依存関係に、現在のバージョンと指定したバージョンの間で競合がないことを意味します。ただし、他の理由でアップグレード オペレーションが成功しないこともあります。

コンソール

環境のアップグレード チェックを実行するには、次のようにします。

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [ENVIRONMENT CONFIGURATION] タブに移動して [イメージのバージョン] エントリを見つけ、[アップグレード] をクリックします。

  4. [環境バージョンのアップグレード] ダイアログの [新しいバージョン] プルダウン リストで、アップグレード先の Cloud Composer のバージョンを選択します。

  5. [PyPI packages compatibility] セクションで、[Check for conflicts] をクリックします。

  6. チェックが完了するまで待ちます。PyPI パッケージの依存関係の競合がある場合、表示されるエラー メッセージに競合するパッケージとパッケージのバージョンの詳細が表示されます。

gcloud

環境のアップグレード チェックを実行するには、アップグレードする Cloud Composer イメージのバージョンで environments check-upgrade コマンドを実行します。

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

以下のように置き換えます。

例:

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

出力例:

Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.8.0-airflow-2.7.3. 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.

別の方法としては、アップグレードの確認を非同期で実行できます。--async 引数を使用して非同期呼び出しを行い、gcloud composer operations describe コマンドで結果を確認します。

API

environments.checkUpgrade API リクエストを作成します。

imageVersion フィールドに、イメージのバージョンを指定します。

{
  "imageVersion": "VERSION"
}

VERSION は、アップグレード後の新しいバージョン(composer-a.b.c-airflow-x.y.z 形式)に置き換えます。

環境をアップグレードする

環境を Cloud Composer または Airflow の最新バージョンにアップグレードする方法は次のとおりです。

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. [イメージのバージョン] 項目を見つけて [アップグレード] をクリックします。

  5. [イメージのバージョン] プルダウン メニューから、アップグレード後の Cloud Composer のバージョンを選択します。

  6. [Upgrade] をクリックします。

gcloud

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

次のように置き換えます。

次に例を示します。

gcloud beta composer environments update
  example-environment \
  --location us-central1 \
  --image-version composer-2.8.0-airflow-2.7.3

API

  1. environments.patch ベータ版の API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.softwareConfig.imageVersion マスクを指定します。

    2. リクエスト本文の imageVersion フィールドに、アップグレードする新しいバージョンを指定します。

次に例を示します。

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

  {
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-2.8.0-airflow-2.7.3"
      }
    }
  }

Terraform

config.software_config ブロックの image_version フィールドは、環境の Cloud Composer イメージを制御します。このフィールドでは、新しい Cloud Composer イメージを指定します。

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

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

以下のように置き換えます。

例:

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

  config {
    software_config {
      image_version = "composer-2.8.0-airflow-2.7.3"
    }
  }
}

次のステップ