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。

流程

  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 
    1
    
      namespace: my-namespace 
    2
    
    spec:
      leaderWorkerTemplate:
        leaderTemplate: 
    3
    
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: leader
              resources: {}
        restartPolicy: RecreateGroupOnPodRestart 
    4
    
        size: 3 
    5
    
        workerTemplate: 
    6
    
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: worker
              ports:
              - containerPort: 8080
                protocol: TCP
              resources: {}
      networkConfig:
        subdomainPolicy: Shared 
    7
    
      replicas: 2 
    8
    
      rolloutStrategy:
        rollingUpdateConfiguration:
          maxSurge: 1 
    9
    
          maxUnavailable: 1
        type: RollingUpdate
      startupPolicy: LeaderCreated
    Copy to Clipboard Toggle word wrap
    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
    指定创建无头服务时要使用的策略。允许的值是 UniquePerReplicaShared。默认值为 Shared
    8
    指定副本数,或 leader-worker 组。默认值为 1
    9
    指定在滚动更新过程中可调度到 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 
    1
    
    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 
    2
    
    my-lws-1-1   1/1     Running   0          6s
    my-lws-1-2   1/1     Running   0          6s
    Copy to Clipboard Toggle word wrap

    1
    第一个组的 leader pod。
    2
    第二个组的 leader pod。
  2. 运行以下命令查看有状态的集合:

    $ oc get statefulsets
    Copy to Clipboard Toggle word wrap

    输出示例

    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 Toggle word wrap

    1
    所有 leader-worker 组的领导有状态集。
    2
    第一个组的 worker 有状态集。
    3
    第二个组的 worker 有状态集。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat