3.3. 使用 Leader Worker Set Operator 管理分布式工作负载


您可以使用 Leader Worker Set Operator 来管理分布式推测工作负载,并有效地处理大规模 inference 请求。

3.3.1. 安装 Leader Worker Set Operator

您可以通过 OpenShift Container Platform Web 控制台安装 Leader Worker Set Operator,以开始管理分布式 AI 工作负载。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 访问 OpenShift Container Platform web 控制台。
  • 您已为 Red Hat OpenShift 安装了 cert-manager Operator。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 验证是否安装了 Red Hat OpenShift 的 cert-manager Operator。
  3. 安装 Leader Worker Set Operator。

    1. 进入 Operators OperatorHub
    2. 在过滤器框中输入 Leader Worker Set Operator
    3. 选择 Leader Worker Set Operator,再单击 Install
    4. Install Operator 页中:

      1. Update channel 设置为 stable-v1.0,它会安装 Leader Worker Set Operator 1.0 的最新稳定版本。
      2. Installation mode 下,选择 A specific namespace on the cluster
      3. Installed Namespace 下,选择 Operator recommended Namespace: openshift-lws-operator
      4. Update approval 下,选择以下更新策略之一:

        • Automatic 策略允许 Operator Lifecycle Manager(OLM)在有新版本可用时自动更新 Operator。
        • Manual 策略需要拥有适当凭证的用户批准 Operator 更新。
      5. Install
  4. 为 Leader Worker Set Operator 创建自定义资源(CR):

    1. 导航到 Installed Operators Leader Worker Set Operator
    2. Provided APIs 下,点 LeaderWorkerSetOperator 窗格中的 Create instance
    3. Create

3.3.2. 部署领导 worker 集

您可以使用 Leader Worker Set Operator 来部署领导 worker 集,以帮助跨节点管理分布式工作负载。

先决条件

  • 已安装 Leader Worker Set Operator。

流程

  1. 运行以下命令创建新项目:

    $ oc new-project my-namespace
    Copy to Clipboard Toggle word wrap
  2. 创建名为 leader-worker-set.yaml的文件

    apiVersion: leaderworkerset.x-k8s.io/v1
    kind: LeaderWorkerSet
    metadata:
      generation: 1
      name: my-lws
      namespace: my-namespace
    spec:
      leaderWorkerTemplate:
        leaderTemplate:
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: leader
              resources: {}
        restartPolicy: RecreateGroupOnPodRestart
        size: 3
        workerTemplate:
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: worker
              ports:
              - containerPort: 8080
                protocol: TCP
              resources: {}
      networkConfig:
        subdomainPolicy: Shared
      replicas: 2
      rolloutStrategy:
        rollingUpdateConfiguration:
          maxSurge: 1
          maxUnavailable: 1
        type: RollingUpdate
      startupPolicy: LeaderCreated
    Copy to Clipboard Toggle word wrap

    其中:

    metadata.name
    指定领导 worker 设置资源的名称。
    metadata.namespace
    指定要在其中运行的 leader worker 的命名空间。
    spec.leaderWorkerTemplate.leaderTemplate
    指定领导 pod 的 pod 模板。
    spec.leaderWorkerTemplate.restartPolicy
    指定 pod 失败时的重启策略。允许的值是 RecreateGroupOnPodRestart,以重启整个组或 None 以不重启组。
    spec.leaderWorkerTemplate.size
    指定为每个组创建的 pod 数量,包括领导 pod。例如,值 3 会创建 1 个领导 pod 和 2 个 worker pod。默认值为 1
    spec.leaderWorkerTemplate.workerTemplate
    指定 worker pod 的 pod 模板。
    spec.networkConfig.subdomainPolicy
    指定创建无头服务时要使用的策略。允许的值是 UniquePerReplicaShared。默认值为 Shared
    spec.replicas
    指定副本数,或 leader-worker 组。默认值为 1
    spec.rolloutStrategy.rollingUpdateConfiguration.maxSurge
    指定在滚动更新过程中可调度到 replicas 值的最大副本数。该值可以指定为整数或百分比。

    有关配置所有可用字段的更多信息,请参阅 LeaderWorkerSet API 上游文档。

  3. 运行以下命令来应用领导 worker 设置配置:

    $ oc apply -f leader-worker-set.yaml
    Copy to Clipboard Toggle word wrap

验证

  1. 运行以下命令验证 pod 是否已创建:

    $ oc get pods -n my-namespace
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME         READY   STATUS    RESTARTS   AGE
    my-lws-0     1/1     Running   0          4s
    my-lws-0-1   1/1     Running   0          3s
    my-lws-0-2   1/1     Running   0          3s
    my-lws-1     1/1     Running   0          7s
    my-lws-1-1   1/1     Running   0          6s
    my-lws-1-2   1/1     Running   0          6s
    Copy to Clipboard Toggle word wrap

    • my-lws-0 是第一个组的领导 pod。
    • my-lws-1 是第二个组的领导 pod。
  2. 运行以下命令查看有状态的集合:

    $ oc get statefulsets
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME       READY   AGE
    my-lws     4/4     111s
    my-lws-0   2/2     57s
    my-lws-1   2/2     60s
    Copy to Clipboard Toggle word wrap

    • my-lws 是所有 leader-worker 组的领导有状态集。
    • my-lws-0 是第一个组的 worker 有状态集。
    • my-lws-1 是第二个组的 worker 有状态集。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat