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。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 验证是否安装了 cert-manager Operator for Red Hat OpenShift。
  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. 部署 leader worker 集

您可以使用 Leader Worker Set Operator 来部署 leader 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
    指定 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
    指定创建无头服务时要使用的策略。允许的值是 UniquePerReplicaShared。默认值为 Shared
    8
    指定副本数,或 leader-worker 组。默认值为 1
    9
    指定在滚动更新过程中可调度的在 replicas 值之上的最大副本数。该值可以指定为整数或百分比。

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

  3. 运行以下命令来应用 leader 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