AI Platform Pipelines 问题排查

您可借助以下提示修复 AI Platform Pipelines 集群中的问题。

了解流水线运行失败的原因

流水线运行中的每一步都有一个描述该步骤活动的日志。 请阅读并分析这些日志,以便更好地了解运行失败的原因。请按照以下说明检查流水线运行的日志。

  1. 在 Google Cloud Console 中打开 AI Platform Pipelines。

    转到 AI Platform Pipelines

  2. 如需查看您的 Kubeflow Pipelines 集群情况,请点击打开流水线信息中心。Kubeflow Pipelines 界面将在新标签页中打开。

  3. 在左侧导航面板中,点击实验。系统随即会显示流水线实验列表。

  4. 点击所有运行。系统随即会显示流水线运行列表。

  5. 点击您要进行问题排查的流水线运行名称。系统随即会打开一个显示流水线步骤的图表。

  6. 流水线步骤带有绿色对勾标记,表示已成功完成。步骤带有红色感叹号,表示运行失败。

    点击您要进行问题排查的流水线步骤。系统随即会显示一个含有步骤工件、输入、输出、卷、清单和日志的部分。

  7. 请查看各个标签页,了解日志中的输入、输出、已创建的工件以及已记录的活动。您可能需要研究几个步骤来找出错误的来源。

禁止访问 Kubeflow Pipelines 信息中心

如果您在访问 Kubeflow Pipelines 信息中心以查看 AI Platform Pipelines 集群时收到已禁止消息,则说明您的权限不足,无法访问集群。如果是其他人为您创建 Google Kubernetes Engine 集群并部署 AI Platform Pipelines,则可能会出现此问题。

要解决此问题,请让您的 Google Cloud 管理员按照以下说明向您的账号授予对 AI Platform Pipelines 的访问权限:

按照以下说明向用户账号授予对 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 集群服务账号上的 Service Account User 角色。

    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 Cluster Viewer 角色的访问权限。

    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 集群和流水线必须执行以下操作:

  • 集群必须有一个提供对 Google Cloud 资源的访问权限的 Kubernetes Secret。按照配置 GKE 集群中的说明,向您的流水线授予对 Google Cloud 资源的访问权限。
  • 流水线步骤必须指定它需要访问流水线定义中的 Kubernetes Secret。了解如何定义流水线步骤以访问 Google Cloud 资源

“服务器只能部分完成您的请求”警告消息

在升级集群或部署 AI Platform Pipelines 时,您可能会看到以下消息。

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

如果您看到此消息,请等待五分钟,然后刷新页面。