Cloud Composer の既知の問題

このページには、Cloud Composer の既知の問題が記載されています。これらの問題に対する修正のいくつかは現在対応中であり、今後のバージョンで実装されます。古いバージョンに影響するいくつかの問題は、環境のアップグレードによって解決できます。

RFC 1918 以外のアドレス範囲は Pod とサービスで部分的にサポートされています

Cloud Composer は、Pod とサービスの RFC 1918 以外のアドレスのサポートの提供を GKE に依存しています。現在、Cloud Composer では、次にあげる RFC 1918 以外の範囲のみがサポートされています。

  • 100.64.0.0/10
  • 192.0.0.0/24
  • 192.0.2.0/24
  • 192.88.99.0/24
  • 198.18.0.0/15
  • 198.51.100.0/24
  • 203.0.113.0/24
  • 240.0.0.0/4

Composer 1.10.2 と Composer 1.10.3 で DAG のシリアル化がオンの場合、Airflow UI はタスクログを表示しません。

Composer のバージョン 1.10.2 と 1.10.3 を使用する環境で DAG のシリアル化を有効にすると、Airflow ウェブサーバーにログが表示されなくなります。この問題を解決するには、バージョン 1.10.4 以降にアップグレードしてください。

GKE Workload Identity はサポートされていません

Cloud Composer GKE クラスタに対して Workload Identity を有効にはできません。その結果、Security Command Center に WORKLOAD_IDENTITY_DISABLED が表示されることがあります。

GKE Pod セキュリティ ポリシーはサポートされていません

Cloud Composer GKE クラスタに対して GKE Pod セキュリティ ポリシーを有効にはできません。その結果、Security Command Center に POD_SECURITY_POLICY_DISABLED が表示されることがあります。

更新中に追加された環境ラベルが Cloud Composer の依存関係に完全に反映されていません

更新されたラベルは、Cloud Storage バケット、Pub/Sub トピック、Compute Engine VM には適用されません。回避策として、これらのラベルは前述のリソースに手動で適用できます。

CVE-2020-14386 の問題に関連した GKE のアップグレード

Google は、あらゆる Cloud Composer 環境の脆弱性の修正に取り組んでいます。この修正の一環として、既存の Cloud Composer の GKE クラスタはすべて新しいバージョンに更新されます。

この脆弱性に直ちに対処することを決定したお客様は、次の点を考慮しながら、これらの手順に従って Composer GKE クラスタをアップグレードできます。

ステップ 1. 1.7.2 より前のバージョンの Cloud Composer を実行している場合は、Cloud Composer の新しいバージョンにアップグレードします。バージョン 1.7.2 以降をご利用の場合は、次の手順に進みます。

手順 2. この脆弱性の修正を含む最新の 1.15 パッチ バージョンに GKE クラスタ(マスターとノード)をアップグレードしてください。

Airflow 1.9.0 から Airflow 1.10.x へのアップグレード後、Airflow ウェブサーバーで Airflow タスクログが利用できなくなります

Airflow 1.10.x では、ログファイルの命名規則に関する下位互換性のない変更が導入されています。Airflow タスクのログ名にゾーン情報が追加されました。

Airflow 1.9.0 では、次の形式でのログ名が保存、想定されます。BUCKET/logs/DAG/2020-03-30T10:29:06/1.log Airflow 1.10.x では、次の形式でのログ名が保存、想定されます。BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

そのため、Airflow 1.9.0 から Airflow 1.10.x にアップグレードする際に Airflow 1.9.0 で実行されるタスクのログを読み取ると、Airflow ウェブサーバーに次のエラー メッセージが表示されます。Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

回避策: Cloud Storage バケットで Airflow 1.9.0 によって生成されたログの名前を、次の形式を使用して変更します。BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

constraints/compute.disableSerialPortLogging の組織のポリシーを有する Cloud Composer 環境が作成できません

constraints/compute.disableSerialPortLogging がターゲット プロジェクトに適用されている場合、Cloud Composer 環境の作成は失敗します。

診断

この問題の影響を受けたかどうかを判断するには、次の手順に従います。

Cloud Console の GKE メニューに移動します。GKE メニューに移動

次に、新しく作成したクラスタを選択します。次のエラーを確認します。

Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:

Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.

回避策:

  1. Cloud Composer 環境を作成するプロジェクトで組織のポリシーを無効にします。

    親リソース(組織またはフォルダ)で有効にされていても、プロジェクト レベルで組織のポリシーをいつでも無効にできます。詳細については、ブール型制約のポリシーのカスタマイズ ページをご覧ください。

  2. 除外フィルタを使用する

    シリアルポート ログに除外フィルタを使用すると、ログにシリアル コンソール ログが記録されるため、組織ポリシーを無効にする場合と同じ目標が達成されます。詳しくは、除外フィルタのページをご覧ください。

VPC Service Controls で保護されている GCP リソースを管理することを目的とした Deployment Manager の使用

Composer では、Deployment Manager を使用して Cloud Composer 環境のコンポーネントを作成します。

2020 年 12 月に、Deployment Manager で VPC Service Controls で保護されているリソースを管理できるようにするために、追加の VPC Service Controls の構成を実施することが必要になるという内容の情報を受信されている可能性があります。

Composer を使用されており、Deployment Manager を直接 GCP リソースの管理に使用しない場合は、Deployment Manager のお知らせでお伝えしているとおり、お客様側で何も操作していただく必要がないことを明記します。

GKE クラスタが削除された後は環境を削除できません

お使いの環境そのものを削除する前にその環境のクラスタを削除する場合、お使いの環境を削除しようとしたときに次のエラーが発生します。

 Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]

GKE クラスタがすでに削除されている場合に環境を削除するには:

  1. Google Cloud Console で [Deployment Manager] ページを開きます。

    Deployment Manager ページを開く

  2. ラベルが付いているすべてのデプロイを検索します。

    • goog-composer-environment:<environment-name>
    • goog-composer-location:<environment-location>

    以下のラベルが付けられた 2 つのデプロイが表示されます。

    • <environment-location>-<environment-name-prefix>-<hash>-sd という名前のデプロイ
    • addons-<uuid> という名前のデプロイ
  3. これら 2 つのデプロイにまだリストされ、プロジェクト(Pub/Sub のトピックとサブスクリプションなど)に存在しているリソースを、手動で削除します。手順は次のとおりです。

    1. デプロイを選択します。

    2. [削除] をクリックします。

    3. [2 つのデプロイと、それらによって作成されたすべてのリソース(VM、ロードバランサ、ディスクなど)の削除] オプションを選択し、[すべて削除] をクリックします。

    削除操作は失敗しますが、残りのリソースは削除されます。

  4. 次のいずれかの方法でデプロイを削除します。

    • Google Cloud Console で、もう一度両方のデプロイを選択します。[削除] をクリックし、[2 つのデプロイを削除しますが、作成されたリソースを保持します] オプションを選択します。

    • gcloud コマンドを実行して、ABANDON ポリシーを持つデプロイを削除します。

      gcloud deployment-manager deployments delete addons-<uuid> \
          --delete-policy=ABANDON
      
      gcloud deployment-manager deployments delete <location>-<env-name-prefix>-<hash>-sd \
          --delete-policy=ABANDON
      
  5. Cloud Composer 環境を削除します

Deployment Manager で、サポートされていない機能に関する情報が表示されます

Deployment Manager のタブに次のような警告が表示されることがあります。

The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.

Cloud Composer が所有する Deployment Manager のデプロイの場合は、この警告を無視してください。

「echo-airflow_monitoring」DAG に属する「echo」タスクの重複エントリに関する警告

Airflow ログに次のエントリが表示される場合があります。

in _query db.query(q) File "/opt/python3.6/lib/python3.6/site-packages/MySQLdb/
connections.py", line 280, in query _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry
'echo-airflow_monitoring-2020-10-20 15:59:40.000000' for key 'PRIMARY'")

このエラーは Airflow DAG とタスク処理に影響しないため、これらのログエントリは無視できます。

Google は、こうした警告を Airflow ログから取り除くように Cloud Composer サービスを改善しています。

compute.requireOsLogin ポリシーが有効な場合、Cloud Composer 環境の作成が失敗します

プロジェクトで compute.requireOsLogin ポリシーが true に設定されている場合、Cloud Composer 環境の作成オペレーションは失敗します。

Cloud Composer 環境を作成するには、プロジェクトでこのポリシーを無効にします。

この組織のポリシーの詳細については、組織のポリシーの制約をご覧ください。

compute.vmExternalIpAccess または compute.vmCanIpForward ポリシーが無効になっていると、Cloud Composer 環境の作成に失敗します。

Cloud Composer が所有する GKE クラスタでは、VM で両方のポリシーを有効にする必要があります。

この組織のポリシーの詳細については、組織のポリシーの制約をご覧ください。