AI 工作负载
在 OpenShift Container Platform 上运行 AI 工作负载
摘要
第 1 章 OpenShift Container Platform 上的 AI 工作负载概述 复制链接链接已复制到粘贴板!
OpenShift Container Platform 为运行人工智能(AI)工作负载(包括训练、推理和数据科学流程)提供了一个安全、可扩展的基础。
1.1. 运行 AI 工作负载的 Operator 复制链接链接已复制到粘贴板!
您可以使用 Operator 在 OpenShift Container Platform 上运行人工智能(AI)和机器学习(ML)工作负载。通过 Operator,您可以构建满足特定 AI/ML 要求的自定义环境,同时继续使用 OpenShift Container Platform 作为应用程序的核心平台。
OpenShift Container Platform 提供了多个可以帮助您运行 AI 工作负载的 Operator:
- 红帽构建的 Kueue
您可以使用红帽构建的 Kueue 提供结构化队列和优先级,以便公平高效地处理工作负载。如果没有正确的优先级,重要的作业可能会延迟,而相对不是非常关键的作业会占用资源。
如需更多信息,请参阅 "红帽构建的 Kueue 介绍"。
- Leader Worker Set Operator
您可以使用 Leader Worker Set Operator 启用在跨节点间稳定地运行大规模 AI 推理工作负载,在 leader 和 worker 进程间进行同步。如果没有适当的协调,运行的大型训练可能会失败或停滞。
如需更多信息,请参阅"Leader Worker Set Operator 概述"。
第 2 章 红帽构建的 Kueue 复制链接链接已复制到粘贴板!
2.1. 红帽构建的 Kueue 简介 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 是一个 Kubernetes 原生系统,用于管理对作业资源的访问。红帽构建的 Kueue 可以决定作业等待、接受创建 pod 或应该被抢占(这意味着该作业的活动 pod 被删除)的时间。
对于红帽构建的 Kueue,一个作业可以被定义为一次性任务或按需任务,它需要运行完成。
红帽构建的 Kueue 基于 Kueue 开源项目。
红帽构建的 Kueue 与使用异构、弹性资源的环境兼容。这意味着,环境具有不同的资源类型,这些资源能够动态扩展。
红帽构建的 Kueue 不会替换 Kubernetes 集群中的任何现有组件,而是与现有 Kubernetes API 服务器、调度程序和集群自动扩展组件集成。
红帽构建的 Kueue 支持“all-or-nothing”语义。这意味着,所有组件的整个作业都会被接受到集群,或者如果整个作业不适用于集群,则拒绝整个作业。
2.1.1. 用户角色(Personas) 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 工作流存在不同的用户角色。
- 批处理管理员
- 批处理管理员管理集群基础架构,并建立配额和队列。
- 批处理用户
- 批处理用户在集群中运行作业。例如,批处理用户可以是研究人员、AI/ML 工程师或数据科学家。
- 服务(Serving)用户
- 服务用户在集群中运行作业。例如,要公开经过训练的 AI/ML 模型用于推理。
- 平台开发者
- 平台开发者将红帽构建的 Kueue 与其他软件集成。它们也会向 Kueue 开源项目进行贡献。
2.1.2. 工作流概述 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 工作流的高级别描述如下:
-
批处理管理员创建和配置
ResourceFlavor、LocalQueue和ClusterQueue资源。 - 用户角色在集群上创建作业。
- Kubernetes API 服务器验证并接受作业数据。
-
红帽构建的 Kueue 会基于配置选项(如订单或配额)来批准作业。它使用资源 flavor 将关联性注入到作业,并创建一个与每个作业对应的
Workload对象。 - 适用于作业类型的控制器创建 pod。
- Kubernetes 调度程序将 pod 分配给集群中的一个节点。
- Kubernetes 集群自动扩展器会根据需要置备更多节点。
2.2. 发行注记 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 作为 OpenShift Container Platform 支持的 Operator 发布。
2.2.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装红帽构建的 Kueue 前,请查看本节以确保您的集群满足要求。
2.2.1.1. 支持的构架 复制链接链接已复制到粘贴板!
以下构架上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.2.1.2. 支持的平台 复制链接链接已复制到粘贴板!
以下平台上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- OpenShift Container Platform
- 为 OpenShift Container Platform 托管的 control plane
目前,Red Hat build of MicroShift (MicroShift) 不支持红帽构建的 Kueue。
2.2.2. 红帽构建的 Kueue 版本 1.1 发行注记 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 版本 1.1 是一个正式发布的版本,在 OpenShift Container Platform 版本 4.18 及更新的版本中被支持。红帽构建的 Kueue 版本 1.1 使用 Kueue 版本 0.12。
如果您之前在集群中安装了以前的红帽构建的 Kueue 版本,则需要卸载以前的 Operator 并手动安装 1.1。如需更多信息,请参阅升级红帽构建的 Kueue。
2.2.2.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 配置默认本地队列
默认本地队列充当新创建的作业的本地队列,它们没有
kue.x-k8s.io/queue-name标签。创建一个默认本地队列后,在该命名空间中创建的任何没有kueue.x-k8s.io/queue-name标签的新作业都会自动更新为带有kue.x-k8s.io/queue-name: default标签。(RFE-7615)
- 支持多架构和托管 control plane
在这个版本中,红帽构建的 Kueue 在多个不同的构架上被支持,包括 ARM64、64 位 x86、ppc64le (IBM Power inventory, 和 s390x (IBM Z7),以及在 OpenShift Container Platform 的托管 control plane 上。
2.2.2.2. 修复的问题 复制链接链接已复制到粘贴板!
- 您可以使用 OpenShift Container Platform Web 控制台创建
Kueue自定义资源 在此更新之前,如果您尝试使用 OpenShift Container Platform Web 控制台使用表单视图创建
Kueue自定义资源 (CR),Web 控制台会显示错误,且无法创建资源。在这个版本中,default 命名空间已从KueueCR 模板中删除。因此,您可以使用 OpenShift Container Platform Web 控制台的表单视图创建一个KueueCR。
2.2.2.3. 已知问题 复制链接链接已复制到粘贴板!
KueueCR 描述在 OpenShift Container Platform Web 控制台中显示为 "Not available"在安装了红帽构建的
Kueue后,在 Operator 详情视图中,Kueue CR 的描述会显示为 "Not available"。这个问题不会影响或降级红帽构建的 Kueue Operator 功能。- 在卸载红帽构建的 Kueue 时,自定义资源不会被正确删除
在 OpenShift Container Platform Web 控制台中使用这个 operator 选项的 Delete all operand instance for this operator 选项卸载 Red Hat Build of Kueue Operator 后,一些红帽构建的 Kueue 自定义资源不会被完全删除。这些资源可以在 Installed Operators 视图中看到,其状态为 Resource is being deleted。作为临时解决方案,您可以手动删除资源终结器来完全删除它们。
2.2.3. 红帽构建的 Kueue 版本 1.0.1 发行注记 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 版本 1.0.1 是一个补丁版本,它在 64 位 x86 架构的 OpenShift Container Platform 版本 4.18 和 4.19 上被支持。
红帽构建的 Kueue 版本 1.0.1 使用 Kueue 版本 0.11。
2.2.3.1. 红帽构建的 Kueue 版本 1.0.1 程序错误修复 复制链接链接已复制到粘贴板!
- 在以前的版本中,红帽构建的 Kueue 的领导选举机制没有配置为容许中断,从而导致频繁崩溃。在这个版本中,红帽构建的 Kueue 的领导选举值已更新,以匹配 OpenShift Container Platform 推荐的持续时间。(OCPBUGS-58496)
-
在以前的版本中,
ReadyReplicas计数没有在协调器中设置,这意味着红帽构建的 Kueue Operator 状态会报告没有副本就绪。在这个版本中,ReadyReplicas计数会基于部署的就绪副本数,这样可确保在 OpenShift Container Platform 控制台中显示为 ready 状态(当kue-controller-managerpod 就绪)。(OCPBUGS-59261) -
在以前的版本中,当从
openshift-kueue-operator命名空间中删除Kueue自定义资源 (CR) 时,kueue-manager-config配置映射不会被自动删除,并可能保留在命名空间中。在这个版本中,在删除Kueue时,kueue-manager-config凭证映射,kueue-webhook-server-certsecret, 和metrics-server-certsecret 会自动删除。(OCPBUGS-57960)
2.2.4. 红帽构建的 Kueue 版本 1.0 发行注记 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 版本 1.0 是一个正式发布的版本,它在 64 位 x86 架构的 OpenShift Container Platform 版本 4.18 和 4.19 上被支持。红帽构建的 Kueue 版本 1.0 使用 Kueue 版本 0.11。
2.2.4.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 基于角色的访问控制 (RBAC)
- 基于角色的访问控制 (RBAC) 允许您控制哪些类型的用户可以创建哪些类型的红帽构建的 Kueue 资源。
- 配置资源配额
- 通过创建集群队列、资源类型和本地队列来配置资源配额,允许您控制用户提交的作业和工作负载使用的资源量。
- 控制作业和工作负载管理
- 通过标记命名空间和配置标签策略,您可以控制哪些作业和工作负载由红帽构建的 Kueue 管理。
- 在队列间共享可移动设备的资源
- 配置 ohorts, fair sharing, 和 gang scheduling 设置可让您在队列间共享未使用的、可借调的资源。
2.2.4.2. 已知问题 复制链接链接已复制到粘贴板!
- 所有作业有
kue.x-k8s.io/queue-name标签,则所有命名空间中的作业会协调它们 红帽构建的 Kueue 使用
managedJobsNamespaceSelector配置字段,以便管理员可以配置选择由红帽构建的 Kueue 管理的命名空间。由于命名空间必须手动配置为选择由红帽构建的 Kueue 管理,因此 system 命名空间或第三方命名空间中的资源不受红帽构建的 Kueue 的影响或管理。红帽构建的 Kueue 1.0 的行为允许协调具有
kue.x-k8s.io/queue-name标签的Job资源,即使这些资源位于没有被选择使用红帽构建的 Kueue 的命名空间中。这与 pod、部署和有状态集等其他核心集成的行为不一致,只有在它们被配置为选择由红帽构建的 Kueue 管理的命名空间中时才协调。- 您不能使用 OpenShift Container Platform Web 控制台创建
Kueue自定义资源 如果您尝试使用 OpenShift Container Platform Web 控制台使用表单视图创建
Kueue自定义资源 (CR),Web 控制台会显示错误,且无法创建资源。作为临时解决方案,使用 YAML 视图来创建一个KueueCR。
2.3. 安装红帽构建的 Kueue 复制链接链接已复制到粘贴板!
您可以使用 OperatorHub 中的 Red Hat Build of Kueue Operator 来安装红帽构建的 Kueue。
2.3.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装红帽构建的 Kueue 前,请查看本节以确保您的集群满足要求。
2.3.1.1. 支持的构架 复制链接链接已复制到粘贴板!
以下构架上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.3.1.2. 支持的平台 复制链接链接已复制到粘贴板!
以下平台上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- OpenShift Container Platform
- 为 OpenShift Container Platform 托管的 control plane
目前,Red Hat build of MicroShift (MicroShift) 不支持红帽构建的 Kueue。
2.3.2. 安装 Red Hat Build of Kueue Operator 复制链接链接已复制到粘贴板!
您可以使用 Web 控制台中的 OperatorHub 在 OpenShift Container Platform 集群上安装 Red Hat Build of Kueue Operator。
先决条件
- 在 OpenShift Container Platform 集群上具有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 已为集群安装并配置了 Red Hat OpenShift 的 cert-manager Operator。
流程
- 在 OpenShift Container Platform Web 控制台中,点击 Operators → OperatorHub。
- 从可用的 Operator 列表中选择 Red Hat Build of Kueue Operator,然后点 Install。
验证
- 进入 Operators → Installed Operators,并确认 Red Hat Build of Kueue Operator 列的状态为 Succeeded。
2.3.3. 升级 Red Hat build of Kueue 复制链接链接已复制到粘贴板!
如果您之前已安装了红帽构建的 Kueue,您必须手动将部署升级到最新版本,以使用最新的程序错误修复和功能增强。
先决条件
- 已安装 Red Hat build of Kueue 的早期版本。
- 使用集群管理员权限登录到 OpenShift Container Platform Web 控制台。
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators,然后从列表中选择 Red Hat build of Kueue。
- 在 Actions 下拉菜单中选择 Uninstall Operator。
此时会打开 Uninstall Operator? 对话框。点 Uninstall。
重要在点 Uninstall 从集群中删除所有现有资源前,选择 Delete all operand instance for this operator 复选框,包括:
-
KueueCR - 您创建的任何集群队列、本地队列或资源类型
当升级集群以保留创建的资源时,请保留此复选框。
-
- 在 OpenShift Container Platform Web 控制台中,点击 Operators → OperatorHub。
- 从可用的 Operator 列表中选择 Red Hat Build of Kueue Operator,然后点 Install。
验证
- 进入 Operators → Installed Operators。
- 确认 Red Hat Build of Kueue Operator 的 Status 为 Succeeded。
- 确认列表中 Operator 名称下显示的版本是最新版本。
2.3.4. 创建 Kueue 自定义资源 复制链接链接已复制到粘贴板!
安装 Red Hat Build of Kueue Operator 后,您必须创建一个 Kueue 自定义资源 (CR) 来配置您的安装。
先决条件
确保您已完成以下先决条件:
- 在集群中安装了 Red Hat build of Kueue Operator。
-
您有集群管理员权限和
kueue-batch-admin-role角色。 - 访问 OpenShift Container Platform web 控制台。
流程
- 在 OpenShift Container Platform web 控制台中,点击 Operators → Installed Operators。
- 在 Provided APIs 表列中,点 Kueue。这会进入 Operator 详情页的 Kueue 选项卡。
- 点 Create Kueue。这会进入 Create Kueue YAML 视图。
输入
KueueCR 的详情。KueueCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
-
创建
KueueCR 后,Web 控制台会进入 Operator 详情页,您可以在其中看到 Kues 列表中的 CR。 可选:如果安装了 OpenShift CLI (
oc),您可以运行以下命令并观察输出,以确认已成功创建了您的KueueCR:oc get kueue
$ oc get kueueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE cluster 4m
NAME AGE cluster 4mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5. 标记命名空间以允许红帽构建的 Kueue 管理作业 复制链接链接已复制到粘贴板!
Red Hat build of Kue Operator 使用一个选择使用(opt-in)webhook 机制来确保策略只针对预期目标的作业和命名空间强制执行。
您必须使用 kueue.openshift.io/managed=true 标签标记需要红帽构建的 Kueue.openshift.io/managed=true 标签的命名空间。
先决条件
- 有集群管理员权限。
-
在集群中安装 Red Hat build of Kueue Operator,您已创建了一个
Kueue自定义资源(CR)。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,将
kueue.openshift.io/managed=true标签添加到命名空间:oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示 Red Hat build of Kueue Operator,命名空间由它的 webhook 准入控制器管理。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.4. 在断开连接的环境中安装红帽构建的 Kueue 复制链接链接已复制到粘贴板!
在断开连接的 OpenShift Container Platform 集群上安装红帽构建的 Kueue 前,您必须完成以下步骤在断开连接的环境中启用 Operator Lifecycle Manager (OLM):
- 为 OLM 禁用默认远程 OperatorHub 源。
- 使用有完全互联网访问的工作站来创建并推送 OperatorHub 内容的本地镜像到镜像 registry。
- 将 OLM 配置为从镜像 registry 上的本地源而不是默认的远程源安装和管理 Operator。
在断开连接的环境中启用 OLM 后,您可以继续使用不受限制的工作站在发布较新版本的 Operator 时保持本地 OperatorHub 源更新。
有关完成这些步骤的完整文档,请参阅 OpenShift Container Platform 文档中有关 在断开连接的环境中使用 Operator Lifecycle Manager 的文档。
2.4.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装红帽构建的 Kueue 前,请查看本节以确保您的集群满足要求。
2.4.1.1. 支持的构架 复制链接链接已复制到粘贴板!
以下构架上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.4.1.2. 支持的平台 复制链接链接已复制到粘贴板!
以下平台上支持红帽构建的 Kueue 版本 1.1 及更新的版本:
- OpenShift Container Platform
- 为 OpenShift Container Platform 托管的 control plane
目前,Red Hat build of MicroShift (MicroShift) 不支持红帽构建的 Kueue。
2.4.2. 安装 Red Hat Build of Kueue Operator 复制链接链接已复制到粘贴板!
您可以使用 Web 控制台中的 OperatorHub 在 OpenShift Container Platform 集群上安装 Red Hat Build of Kueue Operator。
先决条件
- 在 OpenShift Container Platform 集群上具有管理员权限。
- 访问 OpenShift Container Platform web 控制台。
- 已为集群安装并配置了 Red Hat OpenShift 的 cert-manager Operator。
流程
- 在 OpenShift Container Platform Web 控制台中,点击 Operators → OperatorHub。
- 从可用的 Operator 列表中选择 Red Hat Build of Kueue Operator,然后点 Install。
验证
- 进入 Operators → Installed Operators,并确认 Red Hat Build of Kueue Operator 列的状态为 Succeeded。
2.4.3. 升级 Red Hat build of Kueue 复制链接链接已复制到粘贴板!
如果您之前已安装了红帽构建的 Kueue,您必须手动将部署升级到最新版本,以使用最新的程序错误修复和功能增强。
先决条件
- 已安装 Red Hat build of Kueue 的早期版本。
- 使用集群管理员权限登录到 OpenShift Container Platform Web 控制台。
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators,然后从列表中选择 Red Hat build of Kueue。
- 在 Actions 下拉菜单中选择 Uninstall Operator。
此时会打开 Uninstall Operator? 对话框。点 Uninstall。
重要在点 Uninstall 从集群中删除所有现有资源前,选择 Delete all operand instance for this operator 复选框,包括:
-
KueueCR - 您创建的任何集群队列、本地队列或资源类型
当升级集群以保留创建的资源时,请保留此复选框。
-
- 在 OpenShift Container Platform Web 控制台中,点击 Operators → OperatorHub。
- 从可用的 Operator 列表中选择 Red Hat Build of Kueue Operator,然后点 Install。
验证
- 进入 Operators → Installed Operators。
- 确认 Red Hat Build of Kueue Operator 的 Status 为 Succeeded。
- 确认列表中 Operator 名称下显示的版本是最新版本。
2.4.4. 创建 Kueue 自定义资源 复制链接链接已复制到粘贴板!
安装 Red Hat Build of Kueue Operator 后,您必须创建一个 Kueue 自定义资源 (CR) 来配置您的安装。
先决条件
确保您已完成以下先决条件:
- 在集群中安装了 Red Hat build of Kueue Operator。
-
您有集群管理员权限和
kueue-batch-admin-role角色。 - 访问 OpenShift Container Platform web 控制台。
流程
- 在 OpenShift Container Platform web 控制台中,点击 Operators → Installed Operators。
- 在 Provided APIs 表列中,点 Kueue。这会进入 Operator 详情页的 Kueue 选项卡。
- 点 Create Kueue。这会进入 Create Kueue YAML 视图。
输入
KueueCR 的详情。KueueCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
-
创建
KueueCR 后,Web 控制台会进入 Operator 详情页,您可以在其中看到 Kues 列表中的 CR。 可选:如果安装了 OpenShift CLI (
oc),您可以运行以下命令并观察输出,以确认已成功创建了您的KueueCR:oc get kueue
$ oc get kueueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE cluster 4m
NAME AGE cluster 4mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.5. 标记命名空间以允许红帽构建的 Kueue 管理作业 复制链接链接已复制到粘贴板!
Red Hat build of Kue Operator 使用一个选择使用(opt-in)webhook 机制来确保策略只针对预期目标的作业和命名空间强制执行。
您必须使用 kueue.openshift.io/managed=true 标签标记需要红帽构建的 Kueue.openshift.io/managed=true 标签的命名空间。
先决条件
- 有集群管理员权限。
-
在集群中安装 Red Hat build of Kueue Operator,您已创建了一个
Kueue自定义资源(CR)。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,将
kueue.openshift.io/managed=true标签添加到命名空间:oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示 Red Hat build of Kueue Operator,命名空间由它的 webhook 准入控制器管理。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.5. 配置基于角色的权限 复制链接链接已复制到粘贴板!
以下流程提供有关如何为红帽构建的 Kueue 部署配置基于角色的访问控制(RBAC)的信息。这些 RBAC 权限决定了哪些类型的用户可以创建哪些类型的红帽构建的 Kueue 对象。
2.5.1. 集群角色 复制链接链接已复制到粘贴板!
Kueue Operator 的红帽构建会默认部署 kue-batch-admin-role 和 kueue-batch-user-role 集群角色。
- kueue-batch-admin-role
- 此集群角色包括管理集群队列、本地队列、工作负载和资源类别的权限。
- kueue-batch-user-role
- 此集群角色包含管理作业以及查看本地队列和工作负载的权限。
2.5.2. 为批处理管理员配置权限 复制链接链接已复制到粘贴板!
您可以通过将 kue-batch-admin-role 集群角色绑定到用户或组来配置批处理管理员的权限。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
- 有集群管理员权限。
-
已安装 OpenShift CLI(
oc)。
流程
将
ClusterRoleBinding对象创建为 YAML 文件:ClusterRoleBinding对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
ClusterRoleBinding对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来验证
ClusterRoleBinding对象是否已正确应用,并验证输出是否包含kue-batch-admin-role集群角色的正确信息:$ oc describe clusterrolebinding.rbac
$ oc describe clusterrolebinding.rbacCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 为用户配置权限 复制链接链接已复制到粘贴板!
您可以通过将 kue-batch-user-role 集群角色绑定到用户或组,为红帽构建的 Kueue-batch-user-role 集群角色配置权限。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
- 有集群管理员权限。
-
已安装 OpenShift CLI(
oc)。
流程
将
RoleBinding对象创建为 YAML 文件:ClusterRoleBinding对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
RoleBinding对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来验证
RoleBinding对象是否已正确应用,并验证输出是否包含kue-batch-admin-role集群角色的正确信息:$ oc describe rolebinding.rbac
$ oc describe rolebinding.rbacCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. 配置配额 复制链接链接已复制到粘贴板!
作为管理员,您可以使用红帽构建的 Kueue 来配置配额来优化用户工作负载的资源分配和系统吞吐量。您可以为 CPU、内存、pod 和 GPU 等计算资源配置配额。
您可以通过完成以下步骤,在红帽构建的 Kueue 中配置配额:
- 配置集群队列。
- 配置资源类别。
- 配置本地队列。
然后,用户可以将其工作负载提交到本地队列。
2.6.1. 配置集群队列 复制链接链接已复制到粘贴板!
集群队列是一个集群范围的资源,由 ClusterQueue 对象表示,用于管理 CPU、内存和 pod 等资源池。集群队列可用于定义用量限值、资源类别配额、消耗顺序和公平共享规则。
在同时配置了 ResourceFlavor 对象前,集群队列未就绪。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role角色。 -
已安装 OpenShift CLI(
oc)。
流程
将
ClusterQueue对象创建为 YAML 文件:使用单个资源类别的基本
ClusterQueue对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 定义哪些命名空间可以使用由此集群队列管理的资源。示例所示的空
namespaceSelector表示所有命名空间都可以使用这些资源。 - 2
- 定义由集群队列管理的资源类型。这个示例
ClusterQueue对象管理 CPU、内存、pod 和 GPU 资源。 - 3
- 定义应用到列出的资源类型的资源类别。在本例中,
default-flavor资源类别应用于 CPU、内存、pod 和 GPU 资源。 - 4
- 定义接受作业的资源要求。这个示例集群队列仅在满足以下条件时接受作业:
- CPU 请求总和小于或等于 9。
- 内存请求总和小于或等于 36Gi。
- pod 的总数小于或等于 5。
- GPU 请求总和小于或等于 100。
运行以下命令来应用
ClusterQueue对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. 配置资源类别 复制链接链接已复制到粘贴板!
配置 ClusterQueue 对象后,您可以配置 ResourceFlavor 对象。
集群中的资源通常不是同构的。如果集群中的资源是同构的,您可以使用空 ResourceFlavor,而不是向自定义资源类型添加标签。
您可以使用自定义资源 Flavor 对象来代表通过标签、污点和容限与集群节点关联的不同资源变化。然后,您可以将工作负载与特定的节点类型关联,以启用精细的资源管理。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role角色。 -
已安装 OpenShift CLI(
oc)。
流程
将
ResourceFlavor对象创建为 YAML 文件:空
ResourceFlavor对象示例apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor
apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 自定义资源
Flavor对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
ResourceFlavor对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. 配置本地队列 复制链接链接已复制到粘贴板!
本地队列是一个命名空间对象,由 LocalQueue 对象表示,该对象对属于单个命名空间的紧密相关的工作负载进行分组。
作为管理员,您可以配置 LocalQueue 对象以指向集群队列。这会将资源从集群队列分配给 LocalQueue 对象中指定的命名空间中的工作负载。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
有集群管理员权限或
kue-batch-admin-role角色。 -
已安装 OpenShift CLI(
oc)。 -
您已创建了
ClusterQueue对象。
流程
创建一个
LocalQueue对象作为 YAML 文件:基本
LocalQueue对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
LocalQueue对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. 配置默认本地队列 复制链接链接已复制到粘贴板!
作为集群管理员,您可以通过管理所选命名空间中的所有作业来提高集群中的配额强制,而无需显式标记每个作业。您可以通过创建默认的本地队列来完成此操作。
默认本地队列充当新创建的作业的本地队列,它们没有 kue.x-k8s.io/queue-name 标签。创建一个默认本地队列后,在该命名空间中创建的任何没有 kueue.x-k8s.io/queue-name 标签的新作业都会自动更新为带有 kue.x-k8s.io/queue-name: default 标签。
当您创建默认本地队列时,命名空间中的预先存在的作业不会受到影响。如果在创建默认本地队列前命名空间中已存在作业,则必须明确将这些作业分配给队列。
先决条件
- 您已在集群中安装了 Red Hat build of Kueue 版本 1.1。
-
有集群管理员权限或
kue-batch-admin-role角色。 -
已安装 OpenShift CLI(
oc)。 -
您已创建了
ClusterQueue对象。
流程
创建名为
default的LocalQueue对象,作为 YAML 文件:默认
LocalQueue对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
LocalQueue对象:oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在与默认本地队列相同的命名空间中创建作业。
-
使用
kueue.x-k8s.io/queue-name: default标签观察作业更新。
2.7. 管理作业和工作负载 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 不会直接操作用户创建的作业。相反,Kueue 管理代表作业资源要求的 Workload 对象。红帽构建的 Kueue 会自动为每个作业创建一个工作负载,并同步两个对象之间的任何决策和状态。
2.7.1. 标记命名空间以允许红帽构建的 Kueue 管理作业 复制链接链接已复制到粘贴板!
Red Hat build of Kue Operator 使用一个选择使用(opt-in)webhook 机制来确保策略只针对预期目标的作业和命名空间强制执行。
您必须使用 kueue.openshift.io/managed=true 标签标记需要红帽构建的 Kueue.openshift.io/managed=true 标签的命名空间。
先决条件
- 有集群管理员权限。
-
在集群中安装 Red Hat build of Kueue Operator,您已创建了一个
Kueue自定义资源(CR)。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,将
kueue.openshift.io/managed=true标签添加到命名空间:oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示 Red Hat build of Kueue Operator,命名空间由它的 webhook 准入控制器管理。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.7.2. 为作业配置标签策略 复制链接链接已复制到粘贴板!
Kueue 自定义资源 (CR) 中的 spec.config.workloadManagement.labelPolicy spec 是一个可选字段,用于控制红帽构建的 Kueue 决定是否管理或忽略不同的作业。允许的值是 QueueName、None 和空("")。
如果 labelPolicy 设置被省略或为空(""),默认策略是红帽构建的 Kueue 管理具有 kueue.x-k8s.io/queue-name 标签的作业,并忽略没有 kueue.x-k8s.io/queue-name 标签的作业。这与 labelPolicy 被设置为 QueueName 的工作流相同。
如果将 labelPolicy 设置设定为 None,则作业由红帽构建的 Kueue 管理,即使它们没有 x-k8s.io/queue-name 标签。
workloadManagement spec 配置示例
包含 kueue.x-k8s.io/queue-name 标签的用户创建的 Job 对象示例
2.8. 使用 cohorts 复制链接链接已复制到粘贴板!
您可以使用 cohorts 对集群队列进行分组,并确定哪些集群队列可以相互共享可借调的资源。可借调(Borrowable)资源定义为 cohort 中所有集群队列的未使用的 nominal 配额。
使用 cohorts 可以帮助优化资源利用率,它会防止出现利用不足的情况并启用公平共享配置。Cohorts 还有助于简化团队之间的资源管理和分配,您可以将相关工作负载的集群队列分组或为每个团队分组。您还可以使用 cohorts 在组级别上设置资源配额,以定义一组集群队列可以使用的资源的限制。
2.8.1. 在集群队列规格中配置 cohorts 复制链接链接已复制到粘贴板!
您可以通过在 ClusterQueue 对象的 .spec.cohort 字段中指定 cohort 项的名称,将集群队列添加到 cohort 中,如下例所示:
具有匹配的 spec.cohort 的所有集群队列都是同一 cohort 的一部分。
如果省略 spec.cohort 字段,集群队列不属于任何 cohort,无法访问可借调资源。
2.9. 配置公平共享 复制链接链接已复制到粘贴板!
公平共享是一种抢占策略,用于在 cohort 租户之间实现相等或加权资源共享。可借调(Borrowable)资源是 cohort 中所有集群队列的未使用的 nominal 配额。
您可以通过将 Kueue 自定义资源 (CR) 中的 preemptionPolicy 值设置为 FairSharing 来配置公平共享。
2.10. Gang 调度 复制链接链接已复制到粘贴板!
Gang 调度(Gang scheduling)可确保一个组(或gang)相关的作业只在所有需要的资源都可用时才会启动。红帽构建的 Kueue 启用 gang scheduling 时,它会挂起作业,直到 OpenShift Container Platform 集群可以保证足够的容量以一起启动和执行 gang 中的所有相关作业。这也被称为 all-or-nothing 调度。
如果您使用昂贵的、有限的资源(如 GPU)时,则 Gang 调度非常重要。Gang 调度可以防止出现作业只是声明但不使用 GPU 的情况,这可以提高 GPU 利用率并降低运行成本。Gang 调度还可以帮助防止资源分段和死锁等问题。
2.10.1. 配置 gang 调度 复制链接链接已复制到粘贴板!
作为集群管理员,您可以通过修改 Kueue 自定义资源 (CR) 中的 gangScheduling spec 来配置 gang 调度。
配置了 gang 调度的 Kueue CR 示例
- 1
- 您可以通过设置
policy值来启用或禁用 gang 调度。可能的值包括ByWorkload,None, 或空("")。ByWorkload-
当
policy值被设置为ByWorkload时,每个作业都会被单独处理并被视为一个单元。如果作业没有在指定时间内就绪,整个作业都会被驱除并在以后重试。 None-
当
policy值被设置为None时,会禁用 gang 调度。 - 空 (
"") -
当
policy值为空或设置为""时,红帽构建的 Kueue Operator 会决定 gang 调度的设置。目前,会默认禁用 gang 调度。
- 2
- 如果
policy值设置为ByWorkload,您必须配置作业准入设置。admissionspec 的可能值包括Parallel,Sequential, 或空 ("")。Parallel-
当
admission值设置为Parallel时,任何作业中的 pod 可以随时被接受。当作业竞争集群容量时可能会导致死锁。发生死锁时,从另一个作业成功调度的 pod 可能会阻止调度当前作为的 pod。 Sequential-
当
admission值设置为Sequential时,只接受当前处理作业中的 pod。在接受了所有来自当前作业中的 pod 且它们都已就绪后,红帽构建的 Kueue 会处理下一个作业。当集群有足够的容量用于多个作业时,Sequential 处理可能会减慢准入速度,但会增加一个作业的所有 pod 都被成功调度的可能性。 - 空 (
"") -
当
admission值为空或设置为""时,红帽构建的 Kueue Operator 会决定作业准入设置。目前,admission值默认设置为Parallel。
2.11. 使用配额限制运行作业 复制链接链接已复制到粘贴板!
您可以使用启用了红帽构建的 Kueue 运行 Kubernetes 作业,以便在定义的配额限值内管理资源分配。这有助于确保可预见的资源可用性、集群稳定性和优化性能。
2.11.1. 识别可用的本地队列 复制链接链接已复制到粘贴板!
在向队列提交一个作业前,您需要找到本地队列的名称。
先决条件
- 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kueue。
-
集群管理员已为您分配了
kue-batch-user-role集群角色。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令列出命名空间中的可用本地队列:
oc -n <namespace> get localqueues
$ oc -n <namespace> get localqueuesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CLUSTERQUEUE PENDING WORKLOADS user-queue cluster-queue 3
NAME CLUSTERQUEUE PENDING WORKLOADS user-queue cluster-queue 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.2. 定义要使用红帽构建的 Kueue 运行的任务 复制链接链接已复制到粘贴板!
当您定义要使用红帽构建 Kueue 运行的作业时,请确保它满足以下条件:
-
使用
kueue.x-k8s.io/queue-name标签指定要提交作业的本地队列。 - 包括每个作业 pod 的资源请求。
红帽构建的 Kueue 会暂停作业,然后在有资源可用时启动它。红帽构建的 Kueue 创建了对应的工作负载,以 Workload 对象表示,其名称与作业匹配。
先决条件
- 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kueue。
-
集群管理员已为您分配了
kue-batch-user-role集群角色。 -
已安装 OpenShift CLI(
oc)。 - 您已确定要提交作业的本地队列的名称。
流程
创建
Job对象。作业示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来运行作业:
oc create -f <filename>.yaml
$ oc create -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 pod 是否在您创建的作业中运行:
oc get job <job-name>
$ oc get job <job-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS COMPLETIONS DURATION AGE sample-job-sk42x Suspended 0/1 2m12s
NAME STATUS COMPLETIONS DURATION AGE sample-job-sk42x Suspended 0/1 2m12sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并观察输出,验证您的命名空间中是否为作业创建了工作负载:
oc -n <namespace> get workloads
$ oc -n <namespace> get workloadsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE job-sample-job-sk42x-77c03 user-queue 3m8s
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE job-sample-job-sk42x-77c03 user-queue 3m8sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12. 获取支持 复制链接链接已复制到粘贴板!
如果您在执行本文档所述的某个流程或红帽构建的 Kueue 时遇到问题,请访问红帽客户门户。
通过红帽客户门户网站:
- 搜索或者浏览红帽知识库,了解与红帽产品相关的文章和解决方案。
- 向红帽支持提交支持问题单。
- 访问其他产品文档。
2.12.1. 关于红帽知识库 复制链接链接已复制到粘贴板!
红帽知识库提供丰富的内容以帮助您最大程度地利用红帽的产品和技术。红帽知识库包括文章、产品文档和视频,概述了安装、配置和使用红帽产品的最佳实践。另外,您还可以搜索已知问题的解决方案,其提供简洁的根原因描述和补救措施。
2.12.2. 为红帽支持收集数据 复制链接链接已复制到粘贴板!
您可以使用 oc adm must-gather CLI 命令来收集有关最有助于调试问题的红帽构建的 Kueue 实例的信息,包括:
- 红帽构建的 Kueue 自定义资源,如工作负载、集群队列、本地队列、资源类别、准入检查及其相应的集群资源定义 (CRD)
- 服务(Services)
- 端点(Endpoints)
- Webhook 配置
-
来自
openshift-kue-operator命名空间和kueue-controller-managerpod 的日志
默认情况下,收集的数据将写入当前工作目录中名为 must-gather/ 的新目录中。
先决条件
- 在集群中安装了 Red Hat build of Kueue Operator。
-
已安装 OpenShift CLI(
oc)。
流程
-
进入存储
must-gather数据的目录。 运行以下命令来收集
must-gather数据:oc adm must-gather \ --image=registry.redhat.io/kueue/kueue-must-gather-rhel9:<version>
$ oc adm must-gather \ --image=registry.redhat.io/kueue/kueue-must-gather-rhel9:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<version>是您的红帽构建的 Kueue 的当前版本。-
从工作目录中刚刚创建的
must-gather目录创建一个压缩文件。确保为唯一的must-gather数据提供日期和集群 ID。有关如何查找集群 ID 的更多信息,请参阅如何在 OpenShift 集群上找到 cluster-id 或名称。 - 在红帽客户门户网站的客户支持页面中,将压缩文件附加到您的支持问题单中。
第 3 章 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
3.1. Leader Worker Set Operator 概述 复制链接链接已复制到粘贴板!
将大型语言模型 (LLM) 用于 AI/ML 推理通常需要大量的计算资源,因此工作负载通常需要在多个节点之间进行分片。这可使部署变得复杂,对扩展、故障恢复以及有效的 pod 放置方面造成挑战。
Leader Worker Set Operator 通过将一组 pod 视为一个单个的、相互协调的单元,从而简化了对这些多节点的部署。它管理组中每个 pod 的生命周期,将整个组一起进行扩展,并在组级别执行更新和故障恢复以确保一致性。
3.1.1. 关于 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
Leader Worker Set Operator 基于 LeaderWorkerSet 开源项目。LeaderWorkerSet 是一个自定义 Kubernetes API,它可用于将一组 pod 作为一个单元来部署。这对人工智能 (AI) 和机器学习 (ML) 的工作负载很有用,其中大型语言模型 (LLM) 在多个节点上进行分片。
通过 LeaderWorkerSet API,pod 被分组为一个单元,包括一个 leader 和多个 worker,它们作为一个单个实体一起管理。组中的每个 pod 都有一个唯一的 pod 身份。组中的 Pod 会并行创建,并共享相同的生命周期阶段。推出部署、滚动更新和 pod 故障重启作为组来执行。
在 LeaderWorkerSet 配置中,您可以定义组的大小以及组副本数。如果需要,您可以为 leader 和 worker pod 定义单独的模板,以进行特定于角色的自定义。您还可以配置拓扑感知放置,以便同一组中的 pod 位于相同的拓扑中。
在安装 Leader Worker Set Operator 之前,您需要安装 cert-manager Operator for Red Hat OpenShift,因为配置服务和管理指标集合需要它。
默认情况下,对 Leader Worker Set Operator 的监控是通过 OpenShift Container Platform 的 Prometheus 实现的。
3.1.1.1. LeaderWorkerSet 架构 复制链接链接已复制到粘贴板!
下图显示了 LeaderWorkerSet API 如何将 pod 组组织到一个单元中,其中一个 pod 作为 leader,其余 pod 作为 worker,以协调分布式工作负载:
图 3.1. Leader worker set 架构
LeaderWorkerSet API 使用一个 leader 有状态集来管理 pod 组的部署和生命周期。对于每个定义的副本,都会创建一个 leader-worker 组。
每个 leader-worker 组包含一个 leader pod 和一个 worker 有状态集。worker 有状态集由 leader pod 所拥有,并管理与该 leader pod 关联的 worker pod 集合。指定的大小定义了每个 leader-worker 组中的 pod 总数,leader pod 包括在其中。
3.2. leader Worker Set Operator 发行注记 复制链接链接已复制到粘贴板!
您可以使用 Leader Worker Set Operator 来管理分布式推理工作负载,并有效地处理大规模推理请求。
本发行注记介绍了 Leader Worker Set Operator 的开发。
如需更多信息,请参阅关于 Leader Worker Set Operator。
3.2.1. Leader Worker Set Operator 1.0.0 发行注记 复制链接链接已复制到粘贴板!
发布日期:2025 年 9 月 18 日
以下公告可用于 Leader Worker Set Operator 1.0.0:
3.2.1.1. 新功能及功能增强 复制链接链接已复制到粘贴板!
- 这是 Leader Worker Set Operator 的初始发行版本。
3.3. 使用 Leader Worker Set Operator 管理分布式工作负载 复制链接链接已复制到粘贴板!
您可以使用 Leader Worker Set Operator 来管理分布式推理工作负载,并有效地处理大规模推理请求。
3.3.1. 安装 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
您可以使用 Web 控制台安装 Leader Worker Set Operator。
先决条件
-
您可以使用
cluster-admin权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
- 您已为 Red Hat OpenShift 安装了 cert-manager Operator。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
- 验证是否安装了 cert-manager Operator for Red Hat OpenShift。
安装 Leader Worker Set Operator。
- 导航到 Ecosystem → Software Catalog。
- 在过滤器中输入 Leader Worker Set Operator。
- 选择 Leader Worker Set Operator,再点 Install。
在 Install Operator 页中:
- Update channel 设置为 stable-v1.0,它会安装 Leader Worker Set Operator 1.0 的最新稳定版本。
- 在 Installation mode 下,选择 A specific namespace on the cluster。
- 在 Installed Namespace 下,选择 Operator recommended Namespace: openshift-lws-operator。
在 Update approval 下,选择以下更新策略之一:
- Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
- Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
- 点 Install。
为 Leader Worker Set Operator 创建自定义资源 (CR):
- 进入到 Installed Operators → Leader Worker Set Operator。
- 在 Provided APIs 下,点 LeaderWorkerSetOperator 窗格中的 Create instance。
- 点 Create。
3.3.2. 部署 leader worker 集 复制链接链接已复制到粘贴板!
您可以使用 Leader Worker Set Operator 来部署 leader worker 集,以帮助跨节点管理分布式工作负载。
先决条件
- 已安装 Leader Worker Set Operator。
流程
运行以下命令创建新项目:
oc new-project my-namespace
$ oc new-project my-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
leader-worker-set.yaml的文件Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定 leader worker 设置资源的名称。
- 2
- 指定要在其中运行的 leader worker 设置的命名空间。
- 3
- 指定 leader pod 的 pod 模板。
- 4
- 为发生 pod 失败时指定重启策略。允许的值是
RecreateGroupOnPodRestart(重启整个组),或None(不重启组)。 - 5
- 指定要为每个组创建的 pod 数量,包括 leader pod。例如,值
3会创建 1 个 leader pod 和 2 个 worker pod。默认值为1。 - 6
- 指定 worker pod 的 pod 模板。
- 7
- 指定创建无头服务时要使用的策略。允许的值是
UniquePerReplica或Shared。默认值为Shared。 - 8
- 指定副本数,或 leader-worker 组。默认值为
1。 - 9
- 指定在滚动更新过程中可调度的在
replicas值之上的最大副本数。该值可以指定为整数或百分比。
有关配置所有可用字段的更多信息,请参阅 LeaderWorkerSet API 上游文档。
运行以下命令来应用 leader worker 设置配置:
oc apply -f leader-worker-set.yaml
$ oc apply -f leader-worker-set.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证 pod 是否已创建:
oc get pods -n my-namespace
$ oc get pods -n my-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令查看有状态的集合:
oc get statefulsets
$ oc get statefulsetsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY AGE my-lws 4/4 111s my-lws-0 2/2 57s my-lws-1 2/2 60s
NAME READY AGE my-lws 4/4 111s1 my-lws-0 2/2 57s2 my-lws-1 2/2 60s3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 卸载 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
您可以通过卸载 Operator 并删除其相关资源,从 OpenShift Container Platform 中删除 Leader Worker Set Operator。
3.4.1. 卸载 Leader Worker Set Operator 复制链接链接已复制到粘贴板!
您可以使用 Web 控制台卸载 Leader Worker Set Operator。
先决条件
-
您可以使用
cluster-admin权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
- 已安装 Leader Worker Set Operator。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
- 导航到 Operators → Installed Operators。
-
从 Project 下拉列表中选择
openshift-lws-operator。 删除
LeaderWorkerSetOperator实例。- 点 Leader Worker Set Operator,再选择 LeaderWorkerSetOperator 选项卡。
-
点集群条目旁边的 Options 菜单
,然后选择 Delete LeaderWorkerSetOperator。
- 在确认对话框中,点 Delete。
卸载 Leader Worker Set Operator。
- 导航到 Operators → Installed Operators。
-
点 Leader Worker Set Operator 条目旁边的选项菜单
,点 Uninstall Operator。
- 在确认对话框中,点 Uninstall。
3.4.2. 卸载 Leader Worker Set Operator 资源 复制链接链接已复制到粘贴板!
另外,在卸载 Leader Worker Set Operator 后,您可以从集群中删除其相关资源。
先决条件
-
您可以使用
cluster-admin权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
- 您已卸载了 Leader Worker Set Operator。
流程
- 登陆到 OpenShift Container Platform Web 控制台。
删除安装 Leader Worker Set Operator 时创建的 CRD:
- 进入到 Administration → CustomResourceDefinitions。
-
在 Name 字段中输入
LeaderWorkerSetOperator来过滤 CRD。 -
点 LeaderWorkerSetOperator CRD 旁边的 Options 菜单
,然后选择 Delete CustomResourceDefinition。
- 在确认对话框中,点 Delete。
删除
openshift-lws-operator命名空间。- 进入到 Administration → Namespaces。
-
在过滤框中输入
openshift-lws-operator。 -
点 openshift-lws-operator 条目旁的 Options 菜单
, 并选择 Delete Namespace。
-
在确认对话框中,输入
openshift-lws-operator并点 Delete。
Legal Notice
复制链接链接已复制到粘贴板!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.