2.2. 容器资源要求
您可以在下限 (requests) 和上限 (limits) 和 Web 容器配置资源要求。执行环境 control plane 用于项目更新,但通常与作业的默认执行环境相同。
设置资源请求和限值是最佳实践,因为容器已定义有更高的 服务质量 类。这意味着,如果底层节点受资源约束,且集群必须获得 pod 以防止运行内存或其他故障,则 control plane pod 不太可能被获取。
这些请求和限值适用于自动化控制器的控制 pod,以及是否设置了限制,确定实例的容量。默认情况下,控制作业需要 1 个容量单元。任务容器的内存和 CPU 限制用于决定控制节点的容量。有关如何计算它的更多信息,请参阅 Resouce determination。
另请参阅 worker 节点上调度的作业
| 名称 | 描述 | default |
|---|---|---|
|
| Web 容器资源要求 | 请求:{CPU: 100m, memory: 128Mi} |
|
| 任务容器资源要求 | 请求:{CPU: 100m, memory: 128Mi} |
|
| EE control plane 容器资源要求 | 请求:{CPU: 100m, memory: 128Mi} |
|
| Redis control plane 容器资源要求 | requests: {CPU:100m, memory: 128Mi} |
因为也推荐使用 topology_spread_constraints 来最大程度地将控制节点分散到独立的底层 kubernetes worker 节点上,因此合理的请求和限制也会有限制,其总和等于节点上实际资源的限制。如果只设定了 limits,则请求会自动设置为等于限制。但是,由于控制 pod 中容器之间的资源使用量有一些变量,因此您可以将 requests 设置为较低数量,例如,节点上可用的资源的 25%。对于 worker 节点有 4 个 CPU 和 16 GB RAM 的集群,容器自定义示例如下:
spec:
...
web_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi
task_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 2000m
memory: 4Gi
redis_resource_requirements
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi
ee_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
limits:
cpu: 1000m
memory: 4Gi