Cloud Composer 1 | Cloud Composer 2
このページでは、環境を新しい Cloud Composer または Airflow バージョンにアップグレードする方法について説明します。
アップグレード操作について
環境で使用している Airflow または Cloud Composer のバージョンを変更すると、環境は次のようにアップグレードされます。
- Cloud Composer は、新しいバージョンの Cloud Composer イメージを使用して環境のコンポーネントを再デプロイします。
- Cloud Composer は、アップグレード前に環境内で Airflow 構成の変更(カスタム PyPI パッケージや Airflow 構成オプションのオーバーライドなど)が行われている場合にそれを適用します。
- 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 では、環境イメージがサポート終了日に近づくと、警告が表示されます。これらの警告を利用して、環境のサポートを常に維持することができます。
Cloud Composer では、環境の基盤となる Cloud Composer イメージのバージョンを追跡します。サポート終了日に近づくと、環境のリストと [環境の詳細] ページに警告が表示されます。
環境が最新かどうかを確認するには、次のようにします。
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[イメージのバージョン] フィールドに、次のいずれかのメッセージが表示されます。
最新の使用可能なバージョン。環境イメージが完全にサポートされます。
新しいバージョンがあります。環境イメージが完全にサポートされ、新しいバージョンにアップグレードできます。
このイメージ バージョンのサポートは(特定の日時)に終了します。環境イメージは、完全なサポート期間の終盤に近づいています。
このバージョンは(特定の日時)現在サポートされていません。環境は完全なサポート期間を超えています。
gcloud
この機能は、Google Cloud CLI では使用できません。代わりに、利用可能なアップグレードを表示できます。ここでは、利用可能な新しいバージョンが表示されます。
API
API ではこの機能を使用できません。代わりに、利用可能なアップグレードを表示できます。ここでは、利用可能な新しいバージョンが表示されます。
利用可能なアップグレードを表示する
アップグレードできる Cloud Composer のバージョンを表示するには、次の手順を行います。
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の構成] タブに移動し、[イメージ バージョンをアップグレード] をクリックします。
利用可能なバージョンの一覧については、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 パッケージの依存関係に、現在のバージョンと指定したバージョンの間で競合がないことを意味します。ただし、他の理由でアップグレード オペレーションが成功しないこともあります。
コンソール
環境のアップグレード チェックを実行するには、次のようにします。
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[ENVIRONMENT CONFIGURATION] タブに移動して [イメージのバージョン] エントリを見つけ、[アップグレード] をクリックします。
[環境バージョンのアップグレード] ダイアログの [新しいバージョン] プルダウン リストで、アップグレード先の Cloud Composer のバージョンを選択します。
[PyPI packages compatibility] セクションで、[Check for conflicts] をクリックします。
チェックが完了するまで待ちます。PyPI パッケージの依存関係の競合がある場合、表示されるエラー メッセージに競合するパッケージとパッケージのバージョンの詳細が表示されます。
gcloud
環境のアップグレード チェックを実行するには、アップグレードする Cloud Composer イメージのバージョンで environments check-upgrade
コマンドを実行します。
gcloud beta composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。VERSION
は、アップグレード後の新しい Cloud Composer イメージのバージョンに置き換えます。形式はcomposer-a.b.c-airflow-x.y.z
です。すべてのバージョンのエイリアスも使用できます。
例:
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 の最新バージョンにアップグレードする方法は次のとおりです。
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[イメージのバージョン] 項目を見つけて [アップグレード] をクリックします。
[イメージのバージョン] プルダウン メニューから、アップグレード後の Cloud Composer のバージョンを選択します。
[Upgrade] をクリックします。
gcloud
gcloud beta composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
次のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。VERSION
は、アップグレード後の新しい Cloud Composer イメージのバージョンに置き換えます。形式はcomposer-a.b.c-airflow-x.y.z
です。すべてのバージョンのエイリアスも使用できます。
次に例を示します。
gcloud beta composer environments update
example-environment \
--location us-central1 \
--image-version composer-2.8.0-airflow-2.7.3
API
environments.patch
ベータ版の API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.softwareConfig.imageVersion
マスクを指定します。リクエスト本文の
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"
}
}
}
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。 アップグレード後の新しい Cloud Composer イメージのバージョン(composer-a.b.c-airflow-x.y.z
形式)。すべてのバージョンのエイリアスも使用できます。
例:
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"
}
}
}