Cloud Composer 1 | Cloud Composer 2
このページでは、環境を新しい Cloud Composer または Airflow バージョンにアップグレードする方法について説明します。
アップグレード操作について
環境で使用している Airflow または Cloud Composer のバージョンを変更すると、環境がアップグレードされます。
アップグレードしても、環境内のリソース(環境のバケットの URL、Airflow ウェブサーバーなど)へどのように接続するかについては変わりません。
アップグレード中に Cloud Composer は、以下のことを行います。
- 新しいバージョンの Cloud Composer イメージを使用して環境のコンポーネントを再デプロイします。
- アップグレード前に環境内で Airflow 構成の変更(カスタム PyPI パッケージや Airflow 構成オプションのオーバーライドなど)が行われている場合は、それを適用します。
- 新しい Cloud SQL データベースを指定するため Airflow
airflow_db
接続を更新します。
始める前に
アップグレードはプレビュー版です。この機能は本番環境では慎重に使用してください。
Cloud Composer や Airflow を以前のバージョンにダウングレードすることはできません。
Cloud Composer バージョン、Airflow バージョン、またはその両方を同時にアップグレードできます。
Cloud Composer は、任意のバージョンから最新バージョン、3 つの以前のバージョンの Cloud Composer、およびアップグレード タイムラインが延長されたバージョンにのみアップグレードできます。
Cloud Composer の最新バージョン以外のバージョンにアップグレードするには、Google Cloud CLI、API、Terraform を使用します。Google Cloud コンソールでは、最新バージョンにのみアップグレードできます。
環境のアップグレード オペレーションをトリガーできるロールを付与されている必要があります。また、環境のサービス アカウントには、アップグレード オペレーションを実行するための十分な権限を持つロールが必要です。詳細については、アクセス制御をご覧ください。
アップグレードするバージョンの PyPI パッケージの一覧については、Cloud Composer のバージョンのリストをご覧ください。
Airflow データベースに 16 GB を超えるデータが含まれている場合は、環境をアップグレードできません。アップグレード中に Airflow データベースのサイズが 16 GB を超えると、警告が表示されます。その場合、データベースのメンテナンスを実行して、データベースのサイズを減らします。
アップグレードするイメージのバージョンは、環境内の現在の Python バージョンをサポートしている必要があります。
環境が最新であることを確認する
Cloud Composer では、環境イメージがサポート終了日に近づくと、警告が表示されます。これらの警告を使用して、常にフルサポート期間中の環境を維持することができます。
![[環境の詳細] ページに非推奨メッセージが表示されます](https://cloud.google.com/static/composer/docs/images/environment-deprecation-message.png?hl=ja)
Cloud Composer では、環境の基盤となる Cloud Composer イメージのバージョンを追跡します。イメージがサポート終了日に近づくと、環境のリストと [環境の詳細] ページに警告が表示されます。
環境イメージが最新かどうかを確認するには、次のようにします。
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[イメージのバージョン] フィールドに、次のいずれかのメッセージが表示されます。
最新の使用可能なバージョン。環境イメージが完全にサポートされます。
新しいバージョンがあります。環境イメージが完全にサポートされ、新しいバージョンにアップグレードできます。
このイメージ バージョンのサポートは(特定の日時)に終了します。環境イメージは、完全なサポート期間の終盤に近づいています。
このバージョンは(特定の日時)現在サポートされていません。環境は完全なサポート期間を超えています。
利用可能なアップグレードを表示する
アップグレードできる 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 パッケージの依存関係が、現在のバージョンと指定したバージョンの間で競合していないことを意味します。なお、他の理由でアップグレード オペレーションが成功しないこともあります。
Console
環境のアップグレード チェックを実行するには、次のようにします。
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[ENVIRONMENT CONFIGURATION] タブに移動して [イメージのバージョン] エントリを見つけ、[アップグレード] をクリックします。
[Environment version upgrade] ダイアログの [New version] プルダウン リストで、アップグレード先の 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 COMPOSER_IMAGE
次のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。COMPOSER_IMAGE
は、アップグレード先の新しい 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.5.1-airflow-2.6.3
出力例:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.5.1-airflow-2.6.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": "COMPOSER_IMAGE"
}
COMPOSER_IMAGE
は、アップグレード先の新しい Cloud Composer イメージのバージョンに置き換えます(形式は composer-a.b.c-airflow-x.y.z
)。
環境をアップグレードする
環境を Cloud Composer または Airflow の最新バージョンにアップグレードするには:
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
[イメージのバージョン] 項目を見つけて [アップグレード] をクリックします。
[イメージのバージョン] プルダウン メニューからバージョンを選択します。
[アップグレード] をクリックします。
gcloud
gcloud beta composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_IMAGE
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。COMPOSER_IMAGE
は、アップグレード先の新しい Cloud Composer イメージのバージョンで置き換えます。形式はcomposer-a.b.c-airflow-x.y.z
です。
次に例を示します。
gcloud beta composer environments update
example-environment \
--location us-central1 \
--image-version composer-2.5.1-airflow-2.6.3
API
environments.patch
ベータ版の API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.softwareConfig.imageVersion
マスクを指定します。リクエスト本文の
imageVersion
フィールドに、アップグレード先の新しい Cloud Composer イメージのバージョンをcomposer-a.b.c-airflow-x.y.z
の形式で指定します。
次に例を示します。
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-2.5.1-airflow-2.6.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 = "COMPOSER_IMAGE"
}
}
}
次のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。COMPOSER_IMAGE
は、アップグレード先の新しい 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.5.1-airflow-2.6.3"
}
}
}