8.3. Kueue 对常见问题进行故障排除
如果您的用户在与 Kueue 工作负载相关的 Red Hat OpenShift AI 中遇到错误,请阅读本节以了解可能导致问题的原因,以及如何解决这个问题。
如果此处或发行注记中没有记录这个问题,请联系红帽支持团队。
8.3.1. 用户为 Kueue 收到 "failed to call webhook" 错误消息 复制链接链接已复制到粘贴板!
问题
用户运行 cluster.apply () 命令后,会显示以下错误:
ApiException: (500)
Reason: Internal Server Error
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Internal error occurred: failed calling webhook \"mraycluster.kb.io\": failed to call webhook: Post \"https://kueue-webhook-service.redhat-ods-applications.svc:443/mutate-ray-io-v1-raycluster?timeout=10s\": no endpoints available for service \"kueue-webhook-service\"","reason":"InternalError","details":{"causes":[{"message":"failed calling webhook \"mraycluster.kb.io\": failed to call webhook: Post \"https://kueue-webhook-service.redhat-ods-applications.svc:443/mutate-ray-io-v1-raycluster?timeout=10s\": no endpoints available for service \"kueue-webhook-service\""}]},"code":500}
诊断
Kueue pod 可能没有运行。
解决方案
- 在 OpenShift 控制台中,从 Project 列表中选择用户的项目。
-
点 Workloads
Pods。 - 验证 Kueue pod 是否正在运行。如有必要,重启 Kueue pod。
查看 Kueue pod 的日志以验证 webhook 服务器是否服务,如下例所示:
{"level":"info","ts":"2024-06-24T14:36:24.255137871Z","logger":"controller-runtime.webhook","caller":"webhook/server.go:242","msg":"Serving webhook server","host":"","port":9443}
8.3.2. 用户收到 "Default Local Queue … not found" 错误消息 复制链接链接已复制到粘贴板!
问题
用户运行 cluster.apply () 命令后,会显示以下错误:
Default Local Queue with kueue.x-k8s.io/default-queue: true annotation not found please create a default Local Queue or provide the local_queue name in Cluster Configuration.
诊断
没有定义默认本地队列,且集群配置中没有指定本地队列。
解决方案
检查用户项目中是否存在本地队列,如下所示:
- 在 OpenShift 控制台中,从 Project 列表中选择用户的项目。
-
点 Home
Search,然后从 Resources 列表中选择 LocalQueue。 - 如果没有找到本地队列,请创建一个本地队列。
- 为用户提供项目中的本地队列详情,并建议他们将本地队列添加到其集群配置中。
定义默认本地队列。
有关创建本地队列和定义默认本地队列的详情,请参考 为分布式工作负载配置配额管理。
8.3.3. 用户收到提供的 "local_queue does not exist" 错误消息 复制链接链接已复制到粘贴板!
问题
用户运行 cluster.apply () 命令后,会显示以下错误:
local_queue provided does not exist or is not in this namespace. Please provide the correct local_queue name in Cluster Configuration.
诊断
为集群配置中的本地队列指定不正确的值,或者定义了不正确的默认本地队列。指定的本地队列不存在,或者存在于不同的命名空间中。
解决方案
在 OpenShift 控制台中,从 Project 列表中选择用户的项目。
- 单击 Search,然后从 Resources 列表中选择 LocalQueue。
使用以下方法之一解决这个问题:
- 如果没有找到本地队列,请创建一个本地队列。
-
如果找到一个或多个本地队列,请为用户提供项目中本地队列的详细信息。建议用户确保在集群配置中正确拼写本地队列名称,并且集群配置中的
namespace值与其项目名称匹配。
定义默认本地队列。
有关创建本地队列和定义默认本地队列的详情,请参考 为分布式工作负载配置配额管理。
8.3.4. Kueue 置备的 pod 会在拉取镜像前终止 复制链接链接已复制到粘贴板!
问题
在将所有工作负载 pod 标记为置备并运行前,Kueue 会等待一段时间。默认情况下,Kue 会等待 5 分钟。如果 pod 镜像非常大,且仍然在 5 分钟等待期限后被拉取,Kue 会失败并终止相关的 pod。
诊断
- 在 OpenShift 控制台中,从 Project 列表中选择用户的项目。
-
点击 Workloads
Pods。 - 单击用户的 Pod 名称,以打开 Pod 详情页面。
- 点 Events 选项卡,并查看 pod 事件来检查镜像拉取是否已成功完成。
解决方案
如果 pod 需要超过 5 分钟才能拉取镜像,请使用以下方法之一解决这个问题:
-
为由 Kueue 管理的资源添加
OnFailure重启策略。 -
为
Kueue自定义资源(CR)中的waitForPodsReady属性配置自定义超时。CR 由 Red Hat build of Kue Operator 安装在 openshift-kue-operator命名空间中。
有关此配置选项的更多信息,请参阅 Kueue 文档中的 启用 waitForPodsReady。