Kubernetes 集群和节点
Automation Suite on OpenShift 的 Kubernetes 集群和节点要求。
集群和权限
您可以使用自己的 Kubernetes 集群,并按照标准实践进行配置和管理。
An admin user must install specific required components separately, before the Automation Suite platform installation. After installing the required components, you can execute the installer. For the list of required permissions, refer to Granting installation permissions.
节点容量
To estimate node capacity based on your product and scale requirements, use the UiPath Automation Suite Install Sizing Calculator.
代理(工作器)节点的根卷要求为 256 GB。
要开始使用必需的平台服务(身份、许可和路由)和 Orchestrator,您必须为每个节点配置 8 个 vCPU 和 16 GB RAM。
由于稳定性和性能问题,我们不建议在生产场景中使用 Automation Suite 中的点实例。
自动缩放
我们建议在集群上启用自动调节功能,以确保高可靠性并避免业务中断。
其他 Automation Suite Robot 要求
Automation Suite Robot 需要其他工作线程节点。
The hardware requirements for the Automation Suite Robots node depend on the way you plan to use your resources. In addition to the additional agent node requirements, you also need a minimum of 10 GB of file storage to enable package caching.
For details, refer to Storage documentation.
以下部分介绍了影响 Automation Suite Robot 节点所需硬件数量的因素。
机器人尺寸
下表描述了所有机器人规格所需的 CPU、RAM 和存储空间。
| 大小 | CPU | RAM | 存储 |
|---|---|---|---|
| 小 | 0.5 | 1 GB | 1 GB |
| 标准 | 1 | 2 GB | 2 GB |
| 中 | 2 | 4GB | 4GB |
| 大 | 6 | 10 GB | 10 GB |
代理节点规格
Automation Suite Robot 代理节点的资源会影响可并发运行的作业数量。原因是作业的 CPU/RAM 要求需要使用 CPU 内核数和 RAM 容量。
例如,具有 16 个 CPU 和 32 GB RAM 的节点将能够运行以下任何内容:
- 32 个小型作业
- 16 个标准作业
- 8 个中型作业
- 2 个大型作业
作业规格可以混合使用,因此在任何给定时刻,同一节点都可以运行作业组合,如下所示:
- 10 个小型作业(消耗 5 个 CPU 和 10 GB RAM)
- 4 个标准作业 (消耗 4 个 CPU 和 8 GB RAM)
- 3 个中型作业 (消耗 6 个 CPU 和 12 GB RAM)
Kubernetes 资源消耗
鉴于节点是 Kubernetes 集群的一部分,服务器上的 Kubernetes 代理 (kubelet) 会消耗少量资源。根据我们的测量结果,kubelet 会使用以下资源:
- 0.6 个 CPU
- 0.4 GB 内存
与上述节点类似的节点实际上将具有大约 15.4 个 CPU 和 31.6 GB RAM。
自动选择计算机规格
All your cross-platform processes have the Automation Suite Robots option set to Automatic by default. This setting selects the appropriate machine size for running the process using serverless robots.
自动选择规格时,系统会按顺序评估下表中列出的条件。只要满足一个标准,就会选择相应的计算机规格,并且不会再评估其余标准。
| 顺序 | 条件 | 计算机规格 |
|---|---|---|
| 1 | [远程调试作业] | 中 |
| 2 | 流程取决于用户界面自动化或流程取决于UiPath Document Understanding 活动 | 标准 |
| 3 | 其他 Unattended 流程 | 小 |
其他 Document Understanding 建议
为了提高性能,您可以在具有 GPU 支持的其他代理节点上安装 Document Understanding。 但请注意,Document Understanding 中基于 AI Center 的项目在没有 GPU 节点的情况下也可以完全正常运行。 实际上,Document Understanding 使用 CPU 虚拟机执行所有提取和分类任务,而对于 OCR,我们强烈建议使用 GPU 虚拟机。
有关 Document Understanding 框架中 CPU/GPU 使用情况的详细信息,请参阅CPU 和 GPU 使用情况。
如果要使用具有 GPU 支持的其他节点,则必须满足以下要求:
| 硬件 | 最低要求 |
|---|---|
| 处理器 | 8 (v-)CPU/内核 |
| RAM | 52GB |
| 操作系统磁盘 | 256 GB SSD 最低 IOPS:1100 |
| 数据磁盘 | 不适用 |
| GPU RAM | 11GB |
添加 GPU 节点池时,请使用 --node-taints nvidia.com/gpu=present:NoSchedule 污染节点。Automation Suite GPU 工作负载配置为仅允许 nvidia.com/gpu 污点键,因此您必须使用此确切键。如果您使用其他密钥污染节点,计划程序无法将 GPU Pod 放置在该节点上,并且它们仍处于未计划状态。
为确保正确安排 GPU 工作负载,请确保您的守护程序集(NFD 或 NVIDIA GPU 运算符)YAML 配置包含匹配的tolerations块。
可以使用以下示例:
tolerations:
- key: "nvidia.com/gpu"
operator: "Equal"
value: "present"
effect: "NoSchedule"
tolerations:
- key: "nvidia.com/gpu"
operator: "Equal"
value: "present"
effect: "NoSchedule"
Automation Suite 支持 NVIDIA GPU。要了解如何配置 NVIDIA GPU(例如驱动程序),请参阅OpenShift 文档。
其他 Document Understanding 新式项目要求
激活 CPU 推理后,至少需要 2 个 GPU。
To enable CPU inference, set the enable_cpu_inference property to true, as indicated in the Enabling or disabling Document Understanding section.
推理速度可能会慢最多 10 倍。我们建议将其用于最多 125 页的文档,因为对于较大的文档,推理可能会失败。
在没有 CPU 推理的情况下,Document Understanding 新式项目至少需要5 个 GPU 。下表中的示例场景演示了 5 个 GPU 足以处理 300 页。
对于 Document Understanding 新式项目,建议的最低 GPU 是 NVIDIA T4。
| 函数 | 数字 |
|---|---|
| 每小时处理的自定义模型页 | 300 |
| 开箱即用模型每小时处理的页数 | 0 |
| 并行训练模型 | 1 |
| 所有项目中的页数 - 设计时 | 200 |
| 每个项目版本的文档类型数量 | 3 |
5 个 GPU 分布在不同的功能之间,如下表所述:
| 服务 | GPU 数量 |
|---|---|
| OCR 副本 | 1 |
| 自定义模型训练副本 | 1 |
| 自定义模型副本 | 2 |
| 开箱即用模型副本 | 1 |
| 总计 | 5 |
除了 GPU 需求外,Document Understanding 新式项目还需要特定的 CPU 资源才能获得最佳性能。为获得最佳性能,至少需要18 个 vCPU 。
对于新式 Document Understanding 项目,需要额外 4 TB 的objectstore才能连续执行所提供示例中的活动一年。您可以从较小的数字开始,但存储完成后,除非您显式扩展存储空间,否则该活动将失败。
如果要配置一年的持续处理,则需要 4 TB 用于 Document Understanding 新式项目,512 GB 用于其他产品。 总共为 4.5 TB 的存储空间。 同样,如果您开始的处理时间为六个月,则 Document Understanding 新式项目需要 2 TB,其他产品需要 512 GB。 在本例中,总数为 2.5 TB。
For more detailed calculations and the capacity required for your needs, refer to the UiPath Automation Suite Install Sizing Calculator.
配置启用 MIG 的 GPU
Automation Suite Document Understanding 工作负载支持在使用 NVIDIA MIG(多实例 GPU)技术创建的虚拟 GPU (VGPU) 上运行。
要在这些条件下运行 Document Understanding,请记住以下要求:
- GPU 内存 (VRAM):每个 VGPU 至少 16 GB 。UiPath 仅支持单一策略,这意味着所有 VGPU 将完全相同。
- 存储空间:每个 VGPU 至少 80 GB
在 Kubernetes 中启用已启用 MIG 的 GPU
在集群中配置启用了 MIG 的 GPU 后,其配置文件符合或超过上述最低要求,请确保 GPU 是 Kubernetes 可调度的。节点必须报告非零数量的 GPU,然后才能在节点上计划工作负载。
要使 GPU 可计划,您有两个选项:
- 选项 A:遵循云提供商或 NVIDIA 网站上的官方 GPU 设置文档:
- NVIDIA 文档: OpenShift Container Platform 中的 MIG 支持
- IBM 开发者文档:在 Red Hat OpenShift 中实施 NVIDIA MIG
- 选项 B(可选):直接部署 NVIDIA 设备插件:
- 新建命名空间:
kubectl create namespace gpu-resourceskubectl create namespace gpu-resources - 应用以下配置,并将
migEnabledPoolName替换为与您的 GPU 节点匹配的标签:apiVersion: v1 kind: Pod metadata: name: nvidia-device-plugin-pod namespace: gpu-resources spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: agentpool operator: In values: # To be changed to a selector that matches the GPU nodes - migEnabledPoolName containers: - args: - --fail-on-init-error=false env: - name: MPS_ROOT value: /run/nvidia/mps - name: MIG_STRATEGY # We only support the single strategy for now value: single - name: NVIDIA_MIG_MONITOR_DEVICES value: all - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,utility image: nvcr.io/nvidia/k8s-device-plugin:v0.17.3 imagePullPolicy: IfNotPresent name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: true capabilities: add: - SYS_ADMIN terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /var/lib/kubelet/device-plugins name: device-plugin tolerations: - key: CriticalAddonsOnly operator: Exists - effect: NoSchedule key: nvidia.com/gpu operator: Exists terminationGracePeriodSeconds: 30 volumes: - hostPath: path: /var/lib/kubelet/device-plugins type: "" name: device-pluginapiVersion: v1 kind: Pod metadata: name: nvidia-device-plugin-pod namespace: gpu-resources spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: agentpool operator: In values: # To be changed to a selector that matches the GPU nodes - migEnabledPoolName containers: - args: - --fail-on-init-error=false env: - name: MPS_ROOT value: /run/nvidia/mps - name: MIG_STRATEGY # We only support the single strategy for now value: single - name: NVIDIA_MIG_MONITOR_DEVICES value: all - name: NVIDIA_VISIBLE_DEVICES value: all - name: NVIDIA_DRIVER_CAPABILITIES value: compute,utility image: nvcr.io/nvidia/k8s-device-plugin:v0.17.3 imagePullPolicy: IfNotPresent name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: true capabilities: add: - SYS_ADMIN terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /var/lib/kubelet/device-plugins name: device-plugin tolerations: - key: CriticalAddonsOnly operator: Exists - effect: NoSchedule key: nvidia.com/gpu operator: Exists terminationGracePeriodSeconds: 30 volumes: - hostPath: path: /var/lib/kubelet/device-plugins type: "" name: device-plugin
- 新建命名空间:
部署插件后,根据您配置的 MIG 配置文件,节点的“可分配”部分应在nvidia.com/gpu下显示正确的 VGPU 数量。该节点现在应该可计划并准备运行 Document Understanding 工作负载。
其他 Temporal 即服务 (TaaS) 要求
启用 Maestro 后,TaaS 将作为集群中的一组 Kubernetes 部署运行。在默认配置文件中,TaaS 需要至少 5.5 个 vCore 和 5.5 GB RAM 的可用集群净空。
部署
TaaS 包含以下 Kubernetes 部署,每个部署负责 Temporal 服务中的不同功能:
| 部署 | 描述 |
|---|---|
taas-temporal-frontend | 所有客户端与 Temporal 服务的连接的入口点 |
taas-temporal-internalFrontend | 处理集群内的内部服务间通信 |
taas-temporal-history | 管理工作流执行历史记录和状态转换 |
taas-temporal-matching | 将计划任务与可用的工作器匹配,以便执行 |
taas-temporal-worker | 流程内部时态系统工作流 |
taas-temporal-web | 用于可视化和监控工作流的网页用户界面 |
taas-temporal-admintools | 部署用于在集群中发出 Temporal 管理员命令的实用程序 |
Pod 资源要求
下表列出了每个 TaaS 部署的 CPU 和内存请求和限制。所有 TaaS 配置文件的资源设置都相同。
| 部署 | CPU 请求 | CPU 限制 | 内存请求 | 内存限制 |
|---|---|---|---|---|
taas-temporal-frontend | 250 米 | 1 | 256 英里 | 256 英里 |
taas-temporal-internalFrontend | 250 米 | 1 | 256 英里 | 256 英里 |
taas-temporal-history | 250 米 | 1 | 4Gi | 4Gi |
taas-temporal-matching | 250 米 | 1 | 512 Mi | 512 Mi |
taas-temporal-worker | 100 米 | 1 | 256 英里 | 256 英里 |
taas-temporal-web | 100 米 | 200 米 | 128 英里 | 128 英里 |
taas-temporal-admintools | 100 米 | 200 米 | 128 英里 | 128 英里 |
自动缩放
TaaS 将 Horizontal Pod Autoscaler (HPA) 用于部分部署。缩放行为取决于 TaaS 配置文件,如下表所述。
| 默认 | Lite | HA | |
|---|---|---|---|
| 已启用自动调节 | 否 | 是 | 是 |
| 已创建 HPA | 0 | 4 | 4 |
taas-temporal-frontend 副本 | 1(静态) | 1–3(CPU 80%) | 2–3(CPU 80%) |
taas-temporal-internalFrontend 副本 | 1(静态) | 1–3(CPU 80%) | 2–3(CPU 80%) |
taas-temporal-history 副本 | 1(静态) | 1–5(CPU 80% + 内存 70%) | 2–5(CPU 80% + 内存 70%) |
taas-temporal-matching 副本 | 1(静态) | 1–3(CPU 80%) | 2–3(CPU 80%) |
taas-temporal-worker 副本 | 1(静态) | 1(静态) | 2(静态) |
taas-temporal-web 副本 | 1(静态) | 1(静态) | 1(静态) |
taas-temporal-admintools 副本 | 1(静态) | 1(静态) | 1(静态) |
| PDB | disabled | enabled | enabled |
| 历史分片数量 | 64 | 128 | 256(预览版) |
节点调度
Automation Suite Robot 需要节点污点和标签。对于 Document Understanding,建议使用它们。
AI Center 和 DU 示例:
-
对于 CPU:
oc taint node <node_name> aic.ml/cpu=present:NoScheduleoc taint node <node_name> aic.ml/cpu=present:NoSchedule -
对于 GPU:
oc taint node <node_name> nvidia.com/gpu=present:NoScheduleoc taint node <node_name> nvidia.com/gpu=present:NoSchedule
Automation Suite Robot 示例:
您必须为 Automation Suite Robot 配置具有正确污点和标签的专用工作器节点。否则,无论其他节点上的可用资源如何,AsRobot Pod 都将无法计划。
运行以下两个命令 - 单独污点是不够的:
oc taint node <node_name> serverless.robot=present:NoSchedule
oc label node <node_name> serverless.robot=true serverless.daemon=true
oc taint node <node_name> serverless.robot=present:NoSchedule
oc label node <node_name> serverless.robot=true serverless.daemon=true
如果您有网守策略强制执行的自定义节点污点,例如工作线程节点的特定角色或标签,则这些污点不会传递到 Automation Suite ,并且可能会中断安装过程。
要了解有关污点和容忍的信息,请参阅Kubernetes 文档。
其他自托管模型要求
自托管模型需要 GPU 硬件。最低要求取决于模型大小:
| 模型大小 | 最低 GPU 配置 |
|---|---|
| 7B 参数 | 1 个 80 GB GPU(3 个 GPU) |
| 70B 参数 | 4 个 80 GB GPU |
| 超过 120B 个参数 | 8 个 80 GB GPU |
For details, refer to Self-hosted models.