您可借助以下提示修复 AI Platform Pipelines 集群中的问题。
了解流水线运行失败的原因
流水线运行中的每一步都有一个描述该步骤活动的日志。 请阅读并分析这些日志,以便更好地了解运行失败的原因。请按照以下说明检查流水线运行的日志。
在 Google Cloud Console 中打开 AI Platform Pipelines。
如需查看您的 Kubeflow Pipelines 集群情况,请点击打开流水线信息中心。Kubeflow Pipelines 界面将在新标签页中打开。
在左侧导航面板中,点击实验。系统随即会显示流水线实验列表。
点击所有运行。系统随即会显示流水线运行列表。
点击您要进行问题排查的流水线运行名称。系统随即会打开一个显示流水线步骤的图表。
流水线步骤带有绿色对勾标记,表示已成功完成。步骤带有红色感叹号,表示运行失败。
点击您要进行问题排查的流水线步骤。系统随即会显示一个含有步骤工件、输入、输出、卷、清单和日志的部分。
请查看各个标签页,了解日志中的输入、输出、已创建的工件以及已记录的活动。您可能需要研究几个步骤来找出错误的来源。
禁止访问 Kubeflow Pipelines 信息中心
如果您在访问 Kubeflow Pipelines 信息中心以查看 AI Platform Pipelines 集群时收到已禁止消息,则说明您的权限不足,无法访问集群。如果是其他人为您创建 Google Kubernetes Engine 集群并部署 AI Platform Pipelines,则可能会出现此问题。
要解决此问题,请让您的 Google Cloud 管理员按照以下说明向您的账号授予对 AI Platform Pipelines 的访问权限:
按照以下说明向用户账号授予对 AI Platform Pipelines 集群的访问权限。
在 Google Cloud 控制台中打开 AI Platform Pipelines。
找到您的 AI Platform Pipelines 集群。请记下集群和地区以备后续步骤使用。
打开 Cloud Shell 会话。
Cloud Shell 在 Google Cloud 控制台底部的框架中打开。使用 Cloud Shell 完成此过程的其余部分。
请运行以下命令为此 Cloud Shell 会话设置默认 Google Cloud 项目。
gcloud config set project PROJECT_ID
将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。
运行以下命令以查找您的 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 默认服务账号。
向您的用户账号授予 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 上的用户名。
向您的用户账号授予对项目上 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.
如果您看到此消息,请等待五分钟,然后刷新页面。