AI Platform Pipelines のトラブルシューティング

次のヒントを参考にして、AI Platform Pipelines クラスタの問題を解決してください。

パイプライン実行が失敗した理由を理解する

パイプライン実行の各ステップには、ステップのアクティビティを記述するログがあります。これらのログを読み取り、分析して、実行が失敗した理由を把握します。パイプライン実行のログを確認するには、次の手順を行います。

  1. Google Cloud コンソールで AI Platform Pipelines を開きます。

    AI Platform Pipelines に移動

  2. Kubeflow Pipelines クラスタの [パイプライン ダッシュボードを開く] をクリックします。Kubeflow Pipelines ユーザー インターフェースが新しいタブで開きます。

  3. 左側のナビゲーション パネルで、[テスト] をクリックします。パイプライン テストのリストが表示されます。

  4. [All runs] をクリックします。パイプライン実行のリストが表示されます。

  5. トラブルシューティングするパイプライン実行の名前をクリックします。パイプラインのステップが表示されたグラフが開きます。

  6. 緑色のチェックマークが付いているパイプライン ステップは正常に完了しています。赤色の感嘆符が付いているステップは失敗しています。

    トラブルシューティングするパイプライン ステップをクリックします。ステップのアーティファクト、入力、出力、ボリューム、マニフェスト、ログを含むセクションが表示されます。

  7. 各タブを確認して、入力と出力、作成されたアーティファクト、ログに記録されたアクティビティを確認します。エラーの原因を特定するには、複数のステップにわたって調査が必要になる場合があります。

Kubeflow Pipelines ダッシュボードへのアクセスが禁止されている

AI Platform Pipelines クラスタの Kubeflow Pipelines ダッシュボードへのアクセス中に「禁止」メッセージを受け取った場合は、クラスタにアクセスするための十分な権限がありません。この問題は、他のユーザーが Google Kubernetes Engine クラスタを作成して、AI Platform Pipelines をデプロイしたときに発生する可能性があります。

この問題を解決するには、次の手順でアカウントに AI Platform Pipelines へのアクセスを許可するよう Google Cloud 管理者に依頼します。

次の手順を使用して、ユーザー アカウントに AI Platform Pipelines クラスタへのアクセス権を付与します。

  1. Google Cloud コンソールで AI Platform Pipelines を開きます。

    AI Platform Pipelines に移動

  2. AI Platform Pipelines クラスタを探します。以降のステップで使用できるように [クラスタ]と [ゾーン] の値をメモします。

  3. Cloud Shell セッションを開きます。

    Cloud Shell を開く

    Cloud Shell は、Google Cloud コンソールの下部にあるフレームで開きます。Cloud Shell を使用してこのプロセスの残りを完了します。

  4. 次のコマンドを実行して、この Cloud Shell セッションでのデフォルトの Google Cloud プロジェクトを設定します。

    gcloud config set project PROJECT_ID
    

    PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。

  5. 次のコマンドを実行して、GKE クラスタで使用するサービス アカウントを見つけます。

    gcloud container clusters describe CLUSTER_NAME --zone ZONE \
    --format="flattened(nodePools[].config.serviceAccount)"
    

    以下のように置き換えます。

    • CLUSTER_NAME: GKE クラスタの名前。
    • ZONE: クラスタが作成されたゾーン。

    レスポンスに、クラスタが default という名前のサービス アカウントを使用していることが示される可能性があります。この値は、Compute Engine のデフォルトのサービス アカウントを表します。次のコマンドを実行して、このサービス アカウントの完全な名前を確認します。

    gcloud iam service-accounts list \
    --filter "compute@developer.gserviceaccount.com"
    

    Compute Engine のデフォルトのサービス アカウントの詳細を確認してください。

  6. GKE クラスタのサービス アカウントに対するサービス アカウント ユーザーのロールをユーザー アカウントに付与します。

    gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT_NAME \
    --member=user:USERNAME \
    --role=roles/iam.serviceAccountUser
    

    以下のように置き換えます。

    • SERVICE_ACCOUNT_NAME: 前の手順で確認した GKE クラスタのサービス アカウントの名前。サービス アカウント名は、*@*.gserviceaccount.com の形式になります。
    • USERNAME: Google Cloud のユーザー名。
  7. ユーザー アカウントにプロジェクトの GKE クラスタ閲覧者のロールへのアクセス権を付与します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member user:USERNAME --role roles/container.clusterViewer
    

    以下のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID。
    • USERNAME: Google Cloud のユーザー名。

パイプラインの実行中に十分な権限がない

Google Cloud リソースにアクセスするパイプラインの実行中に、権限不足のエラーが発生することがあります。例:

Error executing an HTTP request: HTTP response code 403 with body '{
  "error": {
    "errors": [
      {
       "domain": "global",
       "reason": "insufficientPermissions",
       "message": "Insufficient Permission"
      }
    ],
    "code": 403,
    "message": "Insufficient Permission"
  }
}'

Google Cloud リソースまたは API にアクセスするパイプライン ステップでは、Google Kubernetes Engine クラスタとパイプラインで次の処理を行う必要があります。

「サーバーはリクエストの一部しか実行できませんでした」という内容の警告メッセージ

クラスタのアップグレード中または AI Platform Pipelines のデプロイ中に、次のメッセージが表示されることがあります。

Sorry, the server was only able to partially fulfill
your request. Some data might not be rendered.

このメッセージが表示された場合は、5 分ほど待ってからページを更新してください。