为 uipathctl 创建的工作负载配置资源请求和限制
当 uipathctl 创建的工作负载无法计划或完成时,如何调整 CPU 和内存请求和限制。
描述
运行 uipathctl 命令时,由该命令创建的 Kubernetes 工作负载可能会由于其 CPU 或内存要求而失败。
您可能会遇到以下任一症状:
- Pod 保持
Pending状态,并且其事件包含Insufficient cpu或Insufficient memory。 - Pod 以
OOMKilled状态终止。 - 工作负载受限于 CPU,或在命令超时前无法完成。
- 准入策略拒绝 Pod,因为其资源请求或限制不符合命名空间中配置的
ResourceQuota或LimitRange要求。
此问题可能会影响 uipathctl 创建的用于先决条件检查、运行状况检查、支持包生成、迁移、Helm 操作和升级的工作负载。
解决方案
首先,识别受影响的 Pod 并检查其事件:
kubectl get pods -A
kubectl describe pod <pod-name> -n <namespace>
kubectl get pods -A
kubectl describe pod <pod-name> -n <namespace>
根据报告的情况:
- 对于
OOMKilled,请增加内存限制。如果必须在具有更多可用内存的节点上计划 Pod,则同时增加内存请求。 - 对于具有
Pending或Insufficient cpu的Insufficient memoryPod,仅在工作负载可以在保证容量较低的情况下安全运行时减少请求。否则,请添加集群容量。 - 对于配额或限制范围错误,请指定符合目标命名空间中配置策略的请求和限制。
- 对于速度慢或 CPU 节流的工作负载,请增加 CPU 限制。
您可以更改 input.json 中的资源要求,也可以针对单个命令覆盖资源要求。
在 input.json 中配置资源要求
uipathctl 将其工作负载分组为以下资源类别:
| 等级 | 运营 | 默认请求 (CPU/内存) | 默认限制 (CPU/内存) |
|---|---|---|---|
diagnostic | 运行状况检查和只读验证探测器 | 50m / 64Mi | 250m / 256Mi |
operational | 先决条件检查、支持捆绑包、Helm 操作和身份数据迁移 | 1m / 1k | 2 / 2Gi |
workload | 对象存储、PVC 和 MongoDB 迁移,以及升级文件服务器 | 250m / 512Mi | 2 / 2Gi |
要更改使用 Automation Suite 配置的命令的默认值,请将 workload_resources 添加到 input.json。例如,要增加可用于数据量大的迁移工作负载的资源,请使用以下配置:
{
"workload_resources": {
"workload": {
"requests": {
"cpu": "500m",
"memory": "1Gi"
},
"limits": {
"cpu": "2",
"memory": "4Gi"
}
}
}
}
{
"workload_resources": {
"workload": {
"requests": {
"cpu": "500m",
"memory": "1Gi"
},
"limits": {
"cpu": "2",
"memory": "4Gi"
}
}
}
}
您可以独立配置 diagnostic、operational 和 workload 类。您也可以仅指定要更改的值。任何省略 CPU 或内存的值都将保留其默认值。
请求不能超过其相应的限制。使用标准 Kubernetes 资源数量,例如对于 CPU,使用 500m 或 1,对于内存,使用 256Mi 或 1Gi。
单个命令的覆盖资源要求
对于公开 --probe-cpu 和 --probe-memory 选项的命令,您可以覆盖该命令创建的帮助程序 Pod 的资源要求。例如:
uipathctl health check --probe-cpu 500m --probe-memory 512Mi
uipathctl health check --probe-cpu 500m --probe-memory 512Mi
每个选项都可设置指定资源的请求和限制。如果仅指定一个选项,则其他资源将保留其有效值。
这些选项可用于以下命令:
uipathctl health checkuipathctl health testuipathctl health diagnoseuipathctl config add-host-adminuipathctl config enable-basic-authuipathctl service aicenter sync-skillsuipathctl service aicenter sync-skill-statusuipathctl service orchestrator notifications-migration start
当两种配置方法都适用时,uipathctl 将按以下顺序解析值,后一个值优先:
- 内置默认值。
workload_resources或所应用的集群配置中的input.json值。--probe-cpu或--probe-memory命令行选项。
更新资源要求后,请再次运行受影响的命令,并确认 uipathctl 创建的工作负载已成功启动。
设置允许完成工作负载的最小请求和限制。请求过高可能会阻止计划,而限制过低可能会导致限制或终止。