您可借助以下提示修复 AI Platform Pipelines 集群中的问题。
了解流水线运行失败的原因
流水线运行中的每一步都有一个描述该步骤活动的日志。 请阅读并分析这些日志,以便更好地了解运行失败的原因。请按照以下说明检查流水线运行的日志。
在 Google Cloud 控制台中打开 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 集群和流水线必须执行以下操作:
- 集群必须有一个 Kubernetes Secret,用于提供对Google Cloud 资源的访问权限。按照配置 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.
如果您看到此消息,请等待五分钟,然后刷新页面。