2.2. 容器资源要求
您可以在下限 (requests) 和上限 (limits) 和 Web 容器配置资源要求。执行环境 control plane 用于项目更新,但通常与作业的默认执行环境相同。
设置资源请求和限值是最佳实践,因为已定义这两个容器具有较 高质量的服务类。这意味着,如果底层节点受资源约束,且集群必须获得 pod 以防止运行内存或其他故障,则 control plane pod 不太可能被获取。
这些请求和限值适用于自动化控制器的控制 pod,以及是否设置了限制,确定实例的容量。默认情况下,控制作业需要一个容量单位。任务容器的内存和 CPU 限制用于决定控制节点的容量。有关如何计算它的更多信息,请参阅 Resouce determination for capacity algorithm。
另请参阅 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 中容器之间的资源使用量不同,所以您可以 将请求
设置为较低数量,例如,节点上可用的资源的 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