KubernetesExecutor タスクのトラブルシューティング

Cloud Composer 1 | Cloud Composer 2

このページでは、KubernetesExecutor によって実行されるタスクの問題のトラブルシューティング方法と一般的な問題の解決方法について説明します。

KubernetesExecutor のトラブルシューティングの一般的なアプローチ

KubernetesExecutor で実行されるタスクの問題のトラブルシューティングを行うには、以下の操作を順に行います。

  1. DAG UI または Airflow UI でタスクのログを確認します。

  2. Google Cloud コンソールでスケジューラのログを確認します。

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

      [環境] に移動

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

    3. [ログ] タブに移動し、[Airflow ログ] > [スケジューラ] セクションを確認します。

    4. 特定の時間範囲で、タスクを実行している KubernetesExecutor ワーカー Pod を調べます。Pod が存在しない場合は、この手順をスキップします。Pod には、airflow-k8s-worker 接頭辞と DAG またはタスク名が含まれます。失敗したタスクやスケジュール不可のタスクなど、報告された問題を探します。

KubernetesExecutor の一般的なトラブルシューティング シナリオ

このセクションでは、KubernetesExecutor で発生する可能性のある一般的な問題のトラブルシューティングについて説明します。

タスクが Running 状態になり、実行中に失敗します。

症状:

  • タスクのログが、Airflow UI と [ワーカー] セクションの [ログ] タブにある。

解決策: タスクログに問題が示されます。

タスク インスタンスが queued 状態になり、しばらくすると UP_FOR_RETRY または FAILED とマークされます。

症状:

  • Airflow UI と [ワーカー] セクションの [ログ] タブにタスクのログがない。
  • [スケジューラ] セクションの [ログ] タブに、タスクが UP_FOR_RETRY または FAILED とマークされているというログがある。
  • Pod の名前の中に DAG/タスクの名前を持つ airflow-k8s-worker-*.* Pod が Failed / Pending 状態であるか、存在しない。

解決方法:

  1. スケジューラのログで問題の詳細を調べます。

考えられる原因:

  • スケジューラのログに Adopted tasks were still pending after... メッセージがあり、その後に出力されたタスク インスタンスがある場合は、環境で CeleryKubernetesExecutor が有効になっていることを確認します。

タスク インスタンスが Queued 状態になり、すぐに UP_FOR_RETRY または FAILED とマークされます。

症状:

  • Airflow UI と [ワーカー] セクションの [ログ] タブにタスクのログがない。
  • [Scheduler] セクションの [Logs] タブにあるスケジューラ ログに、Pod creation failed with reason ... Failing task メッセージと、タスクが UP_FOR_RETRY または FAILED としてマークされているというメッセージが表示される。

解決方法:

  • スケジューラのログでレスポンスと失敗の正確な理由を確認します。

考えられる原因:

エラー メッセージが quantities must match the regular expression ... の場合、タスクワーカー Pod の k8s リソース(リクエスト/上限)に設定されたカスタム値が原因である可能性が高いと考えられます。

次のステップ