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 提供多个 Operator 可帮助您运行 AI 工作负载:
- Red Hat build of Kueue
您可以使用红帽构建的 Kue 提供结构化队列和优先顺序,以便处理工作负载完全且有效地处理。如果没有正确优先级,重要的作业可能会延迟,而较少的关键作业会占用资源。
如需更多信息,请参阅 "Introduction to Red Hat build of Kueue"。
- leader Worker Set Operator
您可以使用 Leader Worker Set Operator 启用大规模 AI inference 工作负载,以便使用领导和 worker 进程之间的同步在节点间可靠地运行。如果没有适当的协调,大型培训运行可能会失败或停滞。
如需更多信息,请参阅"Leader Worker 设置 Operator 概述"。
第 2 章 Red Hat build of Kueue 复制链接链接已复制到粘贴板!
2.1. 红帽构建的 Kueue 简介 复制链接链接已复制到粘贴板!
Red Hat build of Kue 是一个 Kubernetes 原生系统,用于管理对作业资源的访问。红帽构建的 Kueue 可以决定作业在何时等待、接受创建 pod 或被 抢占 了,这意味着该作业的活动 pod 已被删除。
在红帽构建的 Kueue 上下文中,可以将作业定义为一次性或按需完成的任务。
红帽构建的 Kueue 基于 Kue 开源项目。
红帽构建的 Kue 与使用异构、弹性资源的环境兼容。这意味着环境具有许多不同的资源类型,这些资源能够动态扩展。
红帽构建的 Kueue 不会替换 Kubernetes 集群中的任何现有组件,而是与现有 Kubernetes API 服务器、调度程序和集群自动扩展组件集成。
红帽构建的 Kue 支持所有或排除语义。这意味着,所有组件的整个作业都会被接受到集群,或者如果整个作业不适用于集群,则拒绝整个作业。
2.1.1. Personas 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 工作流存在不同的用户角色。
- 批处理管理员
- 批处理管理员管理集群基础架构,并建立配额和队列。
- 批处理用户
- 批处理用户在集群中运行作业。批处理用户的示例可能是研究人员、AI/ML 工程师或数据科学家。
- 为用户提供服务
- 供用户在集群中运行作业。例如,要公开经过培训的 AI/ML 模型以推测。
- 平台开发人员
- 平台开发人员将红帽构建的与其他软件集成。它们也可能有助于 Kueue 开源项目。
2.1.2. 工作流概述 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 工作流可以在高级别上描述,如下所示:
-
批处理管理员创建和配置
ResourceFlavor
、LocalQueue
和ClusterQueue
资源。 - 用户用户角色在集群上创建作业。
- Kubernetes API 服务器验证并接受作业数据。
-
红帽构建的 Kueue admit 作业基于配置选项,如顺序或配额。它使用资源类型将关联性注入作业,并创建一个与每个作业对应的
Workload
对象。 - 适用的作业类型的控制器创建 pod。
- Kubernetes 调度程序将 pod 分配给集群中的节点。
- Kubernetes 集群自动扩展根据需要置备更多节点。
2.2. 发行注记 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 作为 OpenShift Container Platform 支持的 Operator 发布。
2.2.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装 Red Hat build of 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
目前,红帽构建的 MicroShift (MicroShift)不支持红帽构建的 Kue。
2.2.2. Red Hat build of Kueue 版本 1.1 发行注记 复制链接链接已复制到粘贴板!
Red Hat build of Kueue 版本 1.1 是一个正式发布的版本,在 OpenShift Container Platform 版本 4.18 及更新的版本中被支持。红帽构建的 Kueue 版本 1.1 使用 Kueue 版本 0.12。
如果您之前在集群中安装了红帽构建的红帽构建版本,则必须卸载 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 命名空间已从Kueue
CR 模板中删除。因此,您可以使用 OpenShift Container Platform Web 控制台使用表单视图创建一个Kueue
CR。
2.2.2.3. 已知问题 复制链接链接已复制到粘贴板!
Kueue
CR 描述在 OpenShift Container Platform Web 控制台中显示为 "Not available"安装红帽构建的
Kueue
后,在 Operator 详情视图中,Kueue CR 的描述会显示为 "Not available"。这个问题不会影响或降级红帽构建的 Kueue Operator 功能。- 在卸载 Red Hat build of Kueue 时,自定义资源不会被正确删除
在 OpenShift Container Platform Web 控制台中使用这个 operator 选项的 Delete all operand instance for this operator 选项卸载 Red Hat Build of Kueue Operator 后,一些红帽构建的 Kue 自定义资源不会被完全删除。这些资源可以在 Installed Operators 视图中查看,其状态 资源正在删除。作为临时解决方案,您可以手动删除资源终结器来完全删除它们。
2.2.3. Red Hat build of 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-manager
pod 就绪)。(OCPBUGS-59261) -
在以前的版本中,当从
openshift-kueue-operator
命名空间中删除Kueue
自定义资源(CR)时,kueue-manager-config
配置映射不会被自动删除,并可能保留在命名空间中。在这个版本中,在删除Kue CR 时,kueue
-manager
-server-cert secret 和-config
配置映射、kue-webhookmetrics-server-cert
secret 会被自动删除。(OCPBUGS-57960)
2.2.4. Red Hat build of Kueue 版本 1.0 发行注记 复制链接链接已复制到粘贴板!
Red Hat build of 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 资源。
- 配置资源配额
- 通过创建集群队列、资源类型和本地队列来配置资源配额,允许您控制用户提交的作业和工作负载使用的资源量。
- 控制作业和工作负载管理
- 通过标记命名空间和配置标签策略,您可以控制哪些作业和工作负载由红帽构建的 Kue 管理。
- 在队列间共享可移动设备的资源
- 配置 cohorts、公平共享和 gang 调度设置可让您在队列间共享未使用的、有可增长的资源。
2.2.4.2. 已知问题 复制链接链接已复制到粘贴板!
- 如果所有命名空间中的作业都有
kue.x-k8s.io/queue-name
标签,则会协调它们 红帽构建的 Kue 使用
managedJobsNamespaceSelector
配置字段,以便管理员可以配置选择由红帽构建的 Kue 管理的命名空间。由于命名空间必须手动配置为选择由红帽构建的 Kue 管理,因此系统或第三方命名空间中的资源不受红帽构建的 Kue 的影响或管理。红帽构建的 Kueue 1.0 的行为允许协调具有
kue.x-k8s.io/queue-name
标签的作业资源,即使这些资源位于没有被选择由 Red Hat build 管理的命名空间中。这与 pod、部署和有状态集等其他核心集成的行为不一致,只有在它们被配置为选择由红帽构建的 Kue 管理的命名空间中时才协调。
- 您不能使用 OpenShift Container Platform Web 控制台创建
Kueue
自定义资源 如果您尝试使用 OpenShift Container Platform Web 控制台使用表单视图创建
Kueue
自定义资源(CR),Web 控制台会显示错误,且无法创建资源。作为临时解决方案,使用 YAML 视图来创建一个Kueue
CR。
2.3. 安装红帽构建的 Kueue 复制链接链接已复制到粘贴板!
您可以使用 OperatorHub 中的红帽构建 Kue Operator 来安装红帽构建的 Kueue。
2.3.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装 Red Hat build of 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
目前,红帽构建的 MicroShift (MicroShift)不支持红帽构建的 Kue。
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 复制链接链接已复制到粘贴板!
如果您之前已安装了红帽构建的 Kue,您必须手动将部署升级到最新版本,以使用最新的程序错误修复和功能增强。
先决条件
- 已安装 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 复选框,包括:
-
Kueue
CR - 您创建的任何集群队列、本地队列或资源类型
当升级集群以保留创建的资源时,请保留此复选框。
-
- 在 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. 创建 Kue 自定义资源 复制链接链接已复制到粘贴板!
安装 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 table 列中,点 Kueue。这会进入 Operator 详情页面的 Kueue 选项卡。
- 点 Create Kueue。这会进入 Create Kueue YAML 视图。
输入
Kueue
CR 的详情。Kueue
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
-
创建
Kueue
CR 后,Web 控制台 会进入 Operator 详情页面,您可以在其中看到 Kues 列表中的 CR。 可选:如果安装了 OpenShift CLI (
oc
),您可以运行以下命令并观察输出,以确认已成功创建了您的 Kue
CR:oc get kueue
$ oc get kueue
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE cluster 4m
NAME AGE cluster 4m
Copy 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,您已创建了一个 Kue 自定义资源(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=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示红帽构建由其 webhook 准入控制器管理命名空间的 Kueue Operator。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.4. 在断开连接的环境中安装红帽构建的 Kueue 复制链接链接已复制到粘贴板!
在断开连接的 OpenShift Container Platform 集群上安装红帽构建前,您必须完成以下步骤在断开连接的环境中启用 Operator Lifecycle Manager (OLM):
- 为 OLM 禁用默认远程 OperatorHub 源。
- 使用有完全互联网访问的工作站来创建并推送 OperatorHub 内容的本地镜像到镜像 registry。
- 将 OLM 配置为从镜像 registry 上的本地源而不是默认的远程源安装和管理 Operator。
在断开连接的环境中启用 OLM 后,您可以继续使用不受限制的工作站在发布较新版本的 Operator 时保持本地 OperatorHub 源更新。
有关完成这些步骤的完整文档,请参阅 OpenShift Container Platform 文档中有关 在断开连接的环境中使用 Operator Lifecycle Manager 的文档。
2.4.1. 兼容环境 复制链接链接已复制到粘贴板!
在安装 Red Hat build of 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
目前,红帽构建的 MicroShift (MicroShift)不支持红帽构建的 Kue。
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 复制链接链接已复制到粘贴板!
如果您之前已安装了红帽构建的 Kue,您必须手动将部署升级到最新版本,以使用最新的程序错误修复和功能增强。
先决条件
- 已安装 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 复选框,包括:
-
Kueue
CR - 您创建的任何集群队列、本地队列或资源类型
当升级集群以保留创建的资源时,请保留此复选框。
-
- 在 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. 创建 Kue 自定义资源 复制链接链接已复制到粘贴板!
安装 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 table 列中,点 Kueue。这会进入 Operator 详情页面的 Kueue 选项卡。
- 点 Create Kueue。这会进入 Create Kueue YAML 视图。
输入
Kueue
CR 的详情。Kueue
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
-
创建
Kueue
CR 后,Web 控制台 会进入 Operator 详情页面,您可以在其中看到 Kues 列表中的 CR。 可选:如果安装了 OpenShift CLI (
oc
),您可以运行以下命令并观察输出,以确认已成功创建了您的 Kue
CR:oc get kueue
$ oc get kueue
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE cluster 4m
NAME AGE cluster 4m
Copy 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,您已创建了一个 Kue 自定义资源(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=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示红帽构建由其 webhook 准入控制器管理命名空间的 Kueue Operator。因此,该命名空间中的任何红帽构建的 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>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来验证
ClusterRoleBinding
对象是否已正确应用,并验证输出是否包含kue-batch-admin-role
集群角色的正确信息:$ oc describe clusterrolebinding.rbac
$ oc describe clusterrolebinding.rbac
Copy 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>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来验证
RoleBinding
对象是否已正确应用,并验证输出是否包含kue-batch-user-role
集群角色的正确信息:$ oc describe rolebinding.rbac
$ oc describe rolebinding.rbac
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. 配置配额 复制链接链接已复制到粘贴板!
作为管理员,您可以使用红帽构建的 Kue 来配置配额来优化用户工作负载的资源分配和系统吞吐量。您可以为 CPU、内存、pod 和 GPU 等计算资源配置配额。
您可以通过完成以下步骤,在 Red Hat build of 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>.yaml
Copy 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-flavor
Copy 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>.yaml
Copy 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>.yaml
Copy 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>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在与默认本地队列相同的命名空间中创建作业。
-
使用
kueue.x-k8s.io/queue-name: default
标签观察作业更新。
2.7. 管理作业和工作负载 复制链接链接已复制到粘贴板!
红帽构建的 Kueue 不会直接操作用户创建的作业。相反,Kue 管理代表作业资源要求的 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,您已创建了一个 Kue 自定义资源(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=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
添加此标签时,您指示红帽构建由其 webhook 准入控制器管理命名空间的 Kueue Operator。因此,该命名空间中的任何红帽构建的 Kueue 资源都会被正确验证并修改。
2.7.2. 为作业配置标签策略 复制链接链接已复制到粘贴板!
Kueue
自定义资源(CR)中的 spec.config.workloadManagement.labelPolicy
spec 是一个可选字段,用于控制红帽构建的 Kueue 决定是否管理或忽略不同的作业。允许的值是 QueueName
、None
和空(""
)。
如果 labelPolicy
设置被省略或为空(""
),默认策略是红帽构建的 Kueue 管理具有
标签的作业,并忽略没有 kue.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
标签的用户创建 作业对象
示例
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 配额。
您可以通过将 Kue
自定义资源(CR)中的 preemptionPolicy
值设置为 FairSharing
来配置公平共享。
2.10. Gang 调度 复制链接链接已复制到粘贴板!
Gang 调度可确保只有在所有所需资源都可用时,才会启动相关作业的组或上角。红帽构建的 Kueue 通过暂停作业来实现 gang 调度,直到 OpenShift Container Platform 集群可以保证容量一起启动和执行所有相关作业。这也被称为 all-or-nothing 调度。
如果您正在使用昂贵的、有限的资源,如 GPU,则 Gang 调度非常重要。Gang 调度可以防止作业声明但不使用 GPU,这可以提高 GPU 利用率并可以降低运行成本。Gang 调度还可帮助防止资源分段和死锁等问题。
2.10.1. 配置 gang 调度 复制链接链接已复制到粘贴板!
作为集群管理员,您可以通过修改 Kue
自定义资源(CR)中的 gangScheduling
spec 来配置 gang 调度。
配置了 gang 调度的 Kueue
CR 示例
- 1
- 您可以将
策略值设置为
启用或禁用 gang 调度。可能的值有ByWorkload
,None
, 或空(""
)。ByWorkload
-
当策略
值设置为ByWorkload
时,每个作业都会被处理并被视为一个单元。如果作业没有在指定时间内就绪,则整个作业都会被驱除并在以后重试。 None
-
当策略值设置为
None
时,会禁用 gang 调度。 - 空(
""
) -
当策略
值为空或设置为""
时,红帽构建的 Kueue Operator 会决定 gang 调度的设置。目前,默认禁用 gang 调度。
- 2
如果策略
值设置为ByWorkload
,您必须配置作业准入设置。准入
spec 的可能值为Parallel
,Sequential
, 或空(""
)。parallel
-
当
准入
值设置为Parallel
时,任何作业中的 pod 可以随时接受。这可能导致死锁,作业处于集群容量争用的位置。发生死锁时,从另一个作业成功调度 pod 可能会阻止 pod 调度当前作业。 顺序
-
当
准入
值设置为Sequential
时,只接受当前处理作业中的 pod。在接受并准备好当前作业中的所有 pod 后,红帽构建会处理下一个作业。当集群有足够的容量用于多个作业时,顺序处理可能会减慢准入速度,但会增加作业的所有 pod 已被成功调度的可能性。 - 空(
""
) -
当
准入
值为空或设置为""
时,红帽构建的 Kueue Operator 会决定作业准入设置。目前,准入
值设置为Parallel
。
2.11. 使用配额限制运行作业 复制链接链接已复制到粘贴板!
您可以使用红帽构建的 Kue 运行 Kubernetes 作业,以便在定义的配额限值内管理资源分配。这有助于确保可预见的资源可用性、集群稳定性和优化性能。
2.11.1. 识别可用的本地队列 复制链接链接已复制到粘贴板!
在向队列提交作业前,您必须找到本地队列的名称。
先决条件
- 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kue。
-
集群管理员已为您分配了
kue-batch-user-role
集群角色。 -
已安装 OpenShift CLI(
oc
)。
流程
运行以下命令列出命名空间中的可用本地队列:
oc -n <namespace> get localqueues
$ oc -n <namespace> get localqueues
Copy 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 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.2. 定义要使用红帽构建的 Kue 运行的任务 复制链接链接已复制到粘贴板!
当您定义要使用红帽构建 Kue 运行的作业时,请确保它满足以下条件:
-
使用
kueue.x-k8s.io/queue-name
标签指定要提交作业的本地队列。 - 包括每个作业 pod 的资源请求。
红帽构建的 Kueue 会暂停作业,然后在有资源可用时启动它。红帽构建的 Kueue 创建了对应的工作负载,以 Workload
对象表示,其名称与作业匹配。
先决条件
- 集群管理员已在 OpenShift Container Platform 集群上安装和配置了红帽构建的 Kue。
-
集群管理员已为您分配了
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>.yaml
Copy 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 2m12s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并观察输出,验证您的命名空间中是否为作业创建了工作负载:
oc -n <namespace> get workloads
$ oc -n <namespace> get workloads
Copy 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 3m8s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12. 获取支持 复制链接链接已复制到粘贴板!
如果您在执行本文档所述的某个流程或红帽构建 Kue 时遇到问题,请访问红帽客户门户。
通过红帽客户门户网站:
- 搜索或浏览红帽知识库,了解与红帽产品相关的文章和解决方案。
- 向红帽支持提交支持问题单。
- 访问其他产品文档。
2.12.1. 关于红帽知识库 复制链接链接已复制到粘贴板!
红帽知识库 提供丰富的内容以帮助您充分利用红帽产品和技术。红帽知识库包括文章、产品文档和视频,概述了安装、配置和使用红帽产品的最佳实践。另外,您还可以搜索已知问题的解决方案,其提供简洁的根原因描述和补救措施。
2.12.2. 为红帽支持收集数据 复制链接链接已复制到粘贴板!
您可以使用 oc adm must-gather
CLI 命令来收集有关最有助于调试问题的红帽构建的 Kueue 实例的信息,包括:
- 红帽构建的 Kueue 自定义资源,如工作负载、集群队列、本地队列、资源类别、准入检查及其相应的集群资源定义(CRD)
- 服务
- Endpoints
- Webhook 配置
-
来自
openshift-kue-operator
命名空间和kueue-controller-manager
pod 的日志
默认情况下,收集的数据将写入当前工作目录中名为 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
> 是您的 Red Hat build of 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 被分组到一个领导和多个 worker 的单元中,它们都作为单个实体一起管理。组中的每个 pod 都有唯一的 pod 身份。组中的 Pod 会并行创建,并共享相同的生命周期阶段。推出部署、滚动更新和 pod 故障重启作为组执行。
在 LeaderWorkerSet
配置中,您可以定义组的大小以及组副本数。如果需要,您可以为 leader 和 worker pod 定义单独的模板,允许角色特定的自定义。您还可以配置拓扑感知放置,以便同一组中的 pod 位于同一个拓扑中。
在安装 Leader Worker Set Operator 之前,您必须为 Red Hat OpenShift 安装 cert-manager Operator,因为它需要配置服务并管理指标集合。
默认情况下,OpenShift Container Platform 通过 Prometheus 提供 Leader Worker Set Operator 的监控。
3.1.1.1. LeaderWorkerSet 架构 复制链接链接已复制到粘贴板!
下图显示了 LeaderWorkerSet
API 如何将 pod 组组织到一个单元中,一个 pod 作为领导,其余 pod 作为 worker,以协调分布式工作负载:
图 3.1. 领导 worker 设置架构
LeaderWorkerSet
API 使用领导有状态集来管理 pod 组的部署和生命周期。对于定义的每个副本,都会创建一个 leader-worker 组。
每个 leader-worker 组包含一个领导 pod 和 worker 有状态集。worker 有状态集由领导 pod 所有,并管理与该领导 pod 关联的 worker pod 集合。指定的大小定义每个 leader-worker 组中的 pod 总数,其中领导 pod 包含在该数字中。
3.2. leader Worker Set Operator 发行注记 复制链接链接已复制到粘贴板!
您可以使用 Leader Worker Set Operator 来管理分布式推测工作负载,并有效地处理大规模 inference 请求。
本发行注记介绍了 Leader Worker Set Operator 的开发。
如需更多信息,请参阅关于 Leader Worker Set Operator。
3.2.1. Leader Worker Set Operator 1.0.0 发行注记 复制链接链接已复制到粘贴板!
发布日期:2525 年 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 来管理分布式推测工作负载,并有效地处理大规模 inference 请求。
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 控制台。
- 验证是否安装了 Red Hat OpenShift 的 cert-manager Operator。
安装 Leader Worker Set Operator。
- 进入 Operators → OperatorHub。
- 在过滤器框中输入 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. 部署领导 worker 集 复制链接链接已复制到粘贴板!
您可以使用 Leader Worker Set Operator 来部署领导 worker 集,以帮助跨节点管理分布式工作负载。
先决条件
- 已安装 Leader Worker Set Operator。
流程
运行以下命令创建新项目:
oc new-project my-namespace
$ oc new-project my-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
leader-worker-set.yaml
的文件Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定领导 worker 设置资源的名称。
- 2
- 指定要在其中运行的 leader worker 设置的命名空间。
- 3
- 指定领导 pod 的 pod 模板。
- 4
- 为发生 pod 失败时指定重启策略。允许的值是
RecreateGroupOnPodRestart
,以重启整个组或None
以不重启组。 - 5
- 指定要为每个组创建的 pod 数量,包括领导 pod。例如,值
3
会创建 1 个领导 pod 和 2 个 worker pod。默认值为1
。 - 6
- 指定 worker pod 的 pod 模板。
- 7
- 指定创建无头服务时要使用的策略。允许的值是
UniquePerReplica
或Shared
。默认值为Shared
。 - 8
- 指定副本数,或 leader-worker 组。默认值为
1
。 - 9
- 指定在滚动更新过程中可调度到
replicas
值的最大副本数。该值可以指定为整数或百分比。
有关配置所有可用字段的更多信息,请参阅 LeaderWorkerSet API 上游文档。
运行以下命令来应用领导 worker 设置配置:
oc apply -f leader-worker-set.yaml
$ oc apply -f leader-worker-set.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证 pod 是否已创建:
oc get pods -n my-namespace
$ oc get pods -n my-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令查看有状态的集合:
oc get statefulsets
$ oc get statefulsets
Copy 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 111s
1 my-lws-0 2/2 57s
2 my-lws-1 2/2 60s
3 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 条目 旁边的 Options 菜单,然后点 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.