環境の更新とアップグレードのトラブルシューティング

Cloud Composer 1 | Cloud Composer 2

このページでは、Cloud Composer 環境の更新中またはアップグレード中に発生する可能性がある問題のトラブルシューティングについて説明します。

環境の作成に関連するトラブルシューティング情報については、環境作成のトラブルシューティングをご覧ください。

Cloud Composer 環境が更新される際、ほとんどの問題は次の理由で発生します。

  • サービス アカウントの権限の問題
  • PyPI の依存関係に関する問題
  • Airflow データベースのサイズ

環境を更新またはアップグレードする権限がありません

権限不足により Cloud Composer で環境を更新またはアップグレードできない場合、次のエラー メッセージが表示されます。

ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission

解決策: アクセス制御での説明に沿って、アカウントと環境のサービス アカウントの両方にロールを割り当てます。

環境のサービス アカウントに十分な権限がありません

Cloud Composer 環境を作成するときに、その環境の GKE クラスタノードを実行するサービス アカウントを指定します。リクエストされたオペレーションを実行するための十分な権限がアカウントにない場合、Cloud Composer はエラーを出力します。

    UPDATE operation on this environment failed 3 minutes ago with the
    following error message:
    Composer Backend timed out. Currently running tasks are [stage:
    CP_COMPOSER_AGENT_RUNNING
    description: "No agent response published."
    response_timestamp {
      seconds: 1618203503
      nanos: 291000000
    }
    ].

解決策: アクセス制御での説明に沿って、アカウントと環境のサービス アカウントの両方にロールを割り当てます。

Airflow データベースのサイズが大きすぎて操作を実行できません

Airflow データベースのサイズが大きすぎてアップグレード操作を正常に処理できないため、Cloud Composer のアップグレード オペレーションが正常に実行されない場合があります。

Airflow データベースのサイズが 16 GB を超えると、Cloud Composer は次のエラーを出力します。

Airflow database uses more than 16 GB. Please clean the database before upgrading.

解決策: Airflow データベースのメンテナンスの説明に従って、Airflow データベース クリーンアップを実行します。

PyPI パッケージの競合が原因で新しい Cloud Composer バージョンへのアップグレードが失敗する

インストールされたカスタム PyPI パッケージを使用して環境をアップグレードすると、PyPI パッケージの競合に関連するエラーが発生することがあります。これは、新しい Cloud Composer イメージに新しいバージョンのプリインストール済みパッケージが含まれているため、環境にインストールした PyPI パッケージと依存関係の競合が発生するためです。

解決策:

  • パッケージの競合に関する詳細情報を取得するには、アップグレード チェックを実行します。
  • インストール済みのカスタム PyPI パッケージのバージョン制約を緩和します。たとえば、バージョンを ==1.0.1 ではなく >=1.0.1 として指定します。
  • 競合する依存関係を解決するためにバージョン要件を変更する方法について詳しくは、pip のドキュメントをご覧ください。

DNS に接続されていないと、アップグレードや更新中に問題が発生する可能性がある

このような接続の問題により、次のようなログエントリが発生する可能性があります。

WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error

通常は DNS へのルートがないことを意味しているため、cluster.google.internal DNS 名をクラスタ、Pod、サービス ネットワーク内から IP アドレスに解決できるようにします。環境が作成されている VPC 内(ホストまたはサービス プロジェクト)で、限定公開の Google アクセスが有効になっているかどうかを確認してください。

詳細情報:

次のステップ