環境を更新する

Cloud Composer 1 | Cloud Composer 2

このページでは、環境を更新する方法について説明します。

更新オペレーションについて

新しいスケーリング パラメータやパフォーマンス パラメータの指定、カスタム PyPI パッケージのインストールを行うなど、環境のパラメータを変更すると、環境が更新されます。

このオペレーションが完了すると、環境で変更が利用可能になります。

単一の Cloud Composer 環境では、一度に 1 つの更新オペレーションしか開始できません。別の環境オペレーションを開始する前に、更新オペレーションが完了するまで待つ必要があります。

更新による Airflow タスクの実行への影響

カスタム PyPI パッケージのインストールなど、更新オペレーションを実行すると、環境内のすべての Airflow スケジューラとワーカーが再起動し、現在実行中のタスクはすべて終了します。更新オペレーションが完了すると、DAG の再試行の構成方法に応じて、これらのタスクの再試行がスケジュールされます。

Terraform を使用した更新

terraform apply の前に terraform plan を実行して、Terraform が環境を更新せずに新しい環境を作成するかどうかを確認します。

始める前に

  • ご使用のアカウント、環境のサービス アカウント、およびプロジェクトの Cloud Composer サービス エージェント アカウントに必要な権限があることを確認します。

  • オペレーションが完了すると、gcloud composer environments update コマンドは終了します。--async フラグを使用すると、オペレーションの完了を待つ必要がなくなります。

環境を更新する

環境の更新の詳細については、特定の更新オペレーションに関する他のドキュメント ページをご覧ください。例:

環境の詳細を表示する

Console

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

    [環境] に移動

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

gcloud

次の gcloud コマンドを実行します。

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

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

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

API

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

例:

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

Terraform

環境のリソースに対して terraform state show コマンドを実行します。

環境の Terraform リソースの名前は、環境の名前と異なる場合があります。

terraform state show google_composer_environment.RESOURCE_NAME

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

  • RESOURCE_NAME は、環境のリソースの名前に置き換えます。

更新の変更のロールバック

まれに、(タイムアウトなどの理由で)更新オペレーションが中断され、リクエストされた変更がすべての環境コンポーネント(Airflow ウェブサーバーなど)でロールバックされないことがあります。

たとえば、更新オペレーションでは、追加の PyPI モジュールのインストールまたは削除、新しい Airflow 環境変数や Cloud Composer 環境変数の再定義や定義、Airflow 関連のパラメータの変更などが考えられます。

このような状況は、Cloud Composer クラスタの自動スケーリングやメンテナンス オペレーションなど、他のオペレーションの進行中に更新オペレーションがトリガーされた場合に発生することがあります。

このような場合は、オペレーションを繰り返すことをおすすめします。

更新またはアップグレード オペレーションの期間

ほとんどの更新またはアップグレード オペレーションでは、Airflow スケジューラ、ワーカー、ウェブサーバーなどの Airflow コンポーネントを再起動する必要があります。

コンポーネントを再起動したら、初期化する必要があります。初期化中に、Airflow スケジューラとワーカーは環境のバケットから /dags フォルダと /plugins フォルダの内容をダウンロードします。ファイルを Airflow スケジューラやワーカーに同期するプロセスは即時ではなく、これらのフォルダ内のすべてのオブジェクトの合計サイズと数によって異なります。

DAG ファイルとプラグイン ファイルのみを /dags フォルダと /plugins フォルダにそれぞれ保持し、他のファイルはすべて削除することをおすすめします。/dags フォルダと /plugins フォルダのデータが多すぎると Airflow コンポーネントの初期化が遅くなり、場合によっては初期化ができなくなる可能性があります。

/dags フォルダと /plugins フォルダに保持するデータは 30 MB 未満にし、100 MB を超えないようにすることをおすすめします。

詳細については、次の情報もご覧ください。

GKE ノードのマシンタイプのアップグレード

既存の default-pool を削除し、必要なマシンタイプで新しい default-pool を作成することで、環境の GKE クラスタのマシンタイプを手動でアップグレードできます。

環境の作成時に、Cloud Composer 環境で発生するコンピューティングの種類に適したマシンタイプを指定することをおすすめします。

リソースを大量に消費する計算を実行するジョブを実行する場合は、GKE Operators を使用することをおすすめします。

アップグレード後も、以前のマシンタイプは環境の詳細に引き続き表示されます。たとえば、[環境の詳細] ページには新しいマシンタイプが反映されていません。

Console

マシンタイプをアップグレードするには、次の手順を行います。

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

    [環境] に移動

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

  3. デフォルトのノードプールに関する情報を取得します。

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

    2. [クラスタの詳細を表示] リンクをクリックします。

    3. [クラスタ] ページの [ノード] セクションで、[default-pool] をクリックします。

    4. ノードプールの詳細ページの [default-pool] のすべての情報を確認します。この情報を使用して、環境用の新しいデフォルトのノードプールを作成します。

  4. default-pool を削除するには:

    1. [ノードプールの詳細] ページで、戻る矢印をクリックして環境の [クラスタ] ページに戻ります。

    2. [ノードプール] セクションで、[default-pool] のゴミ箱アイコンをクリックします。次に、[Delete] をクリックして操作を確定します。

  5. 新しい default-pool を作成するには:

    1. [クラスタ] ページで、[ノードプールを追加] をクリックします。

    2. [名前] にとdefault-pool入力します。環境内のワークフローがこのプールで実行できるように、default-pool 名を使用する必要があります。

    3. サイズとノードの設定を入力します。

    4. (デフォルトの Compute Engine サービス アカウントのみ)アクセス スコープには、[すべての Cloud API に完全アクセス権を許可] を選択します。

    5. [保存] をクリックします。

  6. ワークロードが均等に分散されていない場合は、Airflow ワーカー デプロイメントをゼロまでスケールダウンしてから、もう一度スケールアップします。

次のステップ