2.2. 容器资源要求

您可以在下限 (requests) 和上限 (limits) 和 Web 容器配置资源要求。执行环境 control plane 用于项目更新,但通常与作业的默认执行环境相同。

设置资源请求和限值是最佳实践,因为容器已定义有更高的 服务质量 类。这意味着,如果底层节点受资源约束,且集群必须获得 pod 以防止运行内存或其他故障,则 control plane pod 不太可能被获取。

这些请求和限值适用于自动化控制器的控制 pod,以及是否设置了限制,确定实例的容量。默认情况下,控制作业需要 1 个容量单元。任务容器的内存和 CPU 限制用于决定控制节点的容量。有关如何计算它的更多信息,请参阅 Resouce determination

另请参阅 worker 节点上调度的作业

名称描述default

web_resource_requirements

Web 容器资源要求

请求:{CPU: 100m, memory: 128Mi}

task_resource_requirements

任务容器资源要求

请求:{CPU: 100m, memory: 128Mi}

ee_resource_requirements

EE control plane 容器资源要求

请求:{CPU: 100m, memory: 128Mi}

redis_resource_requirements

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