環境のアップグレード

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

アップグレード中に、Cloud Composer は次のことを行います。

  • Airflow のスケジューラとワーカーポッドを新しい Kubernetes の名前空間に再デプロイします。アップグレードの完了後に Airflow は新しい MySQL データベースを使用します。そのデータベース名は Kubernetes 名前空間と一致します。DAG の実行履歴は保存されます。

  • 新しい Cloud SQL データベースを指定するため Airflow airflow_db 接続を更新します。

これらの変更は、どのように Pod にアクセスするか、および、どのように Cloud SQL データベースへ接続するかに影響を与えます。

  • アップグレード後に GKE クラスタの Pod にアクセスするには、名前空間を認識する kubectl コマンドを使用する必要があります。たとえば、クラスタ内の Pod を一覧表示するには、kubectl get pods -A を使用します。Pod でコマンドを実行するには、kubectl exec -n <NAMESPACE> ... を使用します。
  • SQL プロキシを直接参照する Airflow 接続とワークロードを使用する場合は、ホスト名の一部としてデフォルトの名前空間を使用します(airflow-sqlproxy-service ではなく、airflow-sqlproxy-service.default を使用する)。

Cloud Composer をアップグレードしても、環境内のリソースへどのように接続するかについては変わりません(Google Kubernetes Engine ノード VM IP アドレス、Cloud SQL インスタンス IP アドレス、Cloud Storage バケット、Airflow ウェブサーバーのドメイン名など)。

始める前に

  • 環境のアップグレードは、現在ベータ版です。この機能は本番環境では慎重に使用してください。
  • アップグレードするには、roles/editor または roles/composer.admin のロールが必要です。
  • アップグレード前に、すべての DAG を一時停止して進行中のタスクが終了するまで待機します。
  • Cloud Composer、Airflow バージョン、またはその両方を同時にアップグレードできます。
  • アップグレード先の Cloud Composer と Airflow の組み合わせはいずれも、リリース バージョンである必要があります。
    • 利用可能なアップグレードについては、利用可能なアップグレードの表示をご覧ください。最新の機能と修正を取得するには、最新の Cloud Composer リリースへのアップグレードを検討してください。
    • サポート対象のバージョンの PyPI パッケージとカスタマイズの一覧については、Cloud Composer のバージョン リストをご覧ください。

      アップグレード前に、Airflow と Cloud Composer の現在のバージョンとアップグレード先のバージョンの違いを把握しておいてください。互換性のない変更を行うと DAG の破損の原因となる可能性があります。

制限事項

  • Cloud Composer や Airflow を以前のバージョンにダウングレードすることはできません。
  • 同じメジャー バージョンのうち最新の Cloud Composer バージョンにのみアップグレードできます(composer-1.4.0-airflow-1.10.0 から composer-1.5.0-airflow-1.10.0 など)。Cloud Composer メジャー バージョンは 1 から 2 に変更されるため、composer-1.4.0-airflow-1.10.0 から composer-2.0.0-airflow-1.10.0 へのアップグレードは行えません。
  • アップグレードするイメージのバージョンは、環境内の現在の Python バージョンをサポートしている必要があります。
  • 現時点では、VPC Service Controls が有効になっているプロジェクト内の環境でイメージ バージョンのアップグレードは実行できません。

利用可能なアップグレードの表示

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

Console

  1. Google Cloud で [環境] ページを開きます。

    [環境] ページを開く

  2. 環境の [名前] をクリックします。

  3. [Environment Configuration] タブで [Upgrade Image Version] をクリックします。

  4. Cloud Composer の [イメージのバージョン] プルダウン メニューをクリックして、利用可能なバージョンの一覧を表示します。

gcloud

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

ここで

  • ENVIRONMENT_NAME は、環境の名前です。
  • LOCATION は、環境が配置される Compute Engine のリージョンです。

例:

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

Cloud Composer REST API を使用して、利用可能なバージョンを表示するには、imageVersions.list API リクエストを作成し、projects/{projectId}/locations/{locationId} の形式でプロジェクトとロケーションを指定します。

例:

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"
      ]
    }
  ]
} 

Cloud Composer バージョンのアップグレード

環境で実行している Cloud Composer のバージョンをアップグレードするには、次の手順を行います。

Console

  1. Google Cloud で [環境] ページを開きます。

    [環境] ページを開く

  2. 変更する環境の [名前] をクリックします。

  3. [Environment Configuration] タブで [Upgrade Image Version] をクリックします。

  4. Cloud Composer の [イメージのバージョン] プルダウン メニューをクリックして、バージョンを選択します。

  5. [送信] をクリック

gcloud

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

ここで

  • ENVIRONMENT_NAME は、環境の名前です。
  • LOCATION は、環境が配置される Compute Engine のリージョンです。
  • VERSION は、環境で composer-a.b.c-airflow-x.y.z または composer-a.b.c-airflow-x.y の形式で使用する Cloud Composer バージョンと Airflow バージョンです。Airflow パッチを指定しない場合は、指定されたメジャー バージョンとマイナー バージョンに対して利用可能な最も高いパッチ バージョンが使用されます。

例:

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

API

Cloud Composer REST API を使用してアップグレードするには、environments.patch API リクエストを作成します。composer-a.b.c-airflow-x.y.z の形式でバージョンを指定します。

例:

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

リクエストの本文には、imageVersion が含まれています。

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

Airflow バージョンのアップグレード

環境で最新の Cloud Composer バージョンを実行している場合は、Cloud SDK を使用して Airflow のバージョンのみをアップグレードできます。たとえば、composer-1.6.1-airflow-1.9.0 から composer-1.6.1-airflow-1.10.0 にアップグレードできます。

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

ここで

  • ENVIRONMENT_NAME は、環境の名前です。
  • LOCATION は、環境が配置される Compute Engine のリージョンです。
  • VERSION は、環境で x.y.z または x.y の形式で使用する Airflow のバージョンです。

例:

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