3.7. 减少管道的资源消耗
如果在多租户环境中使用集群,您必须控制各个项目和 Kubernetes 对象的 CPU、内存和存储资源的消耗。这有助于防止一个应用程序消耗太多资源并影响其他应用程序。
要定义在生成的 pod 上设置的最终资源限值,Red Hat OpenShift Pipelines 使用资源配额限制和/或限制执行项目的范围。
要限制项目中的资源消耗,您可以:
- 设置和管理资源配额来限制聚合资源消耗。
- 使用限制范围来限制特定对象的资源消耗,如 pod、镜像、镜像流和持久性卷声明。
3.7.1. 了解管道中的资源消耗
每个任务都由 Task
资源中 steps
字段中定义的特定顺序执行的一些所需步骤组成。每个任务都作为 pod 运行,每个步骤都作为该 pod 中的容器运行。
每次都会执行一个步骤。执行此任务的 Pod 仅请求足够的资源,以一次在任务中运行单个容器镜像(步骤),因此不会为任务中的所有步骤存储资源。
steps
spec 中的 Resources
字段指定资源消耗的限值。默认情况下,CPU、内存和临时存储的资源请求设置为 BestEffort
(零)值,或通过该项目中限制范围设置的最小值。
步骤的资源请求和限值配置示例
spec: steps: - name: <step_name> resources: requests: memory: 2Gi cpu: 600m limits: memory: 4Gi cpu: 900m
当在执行管道和任务运行的项目中指定 LimitRange
参数和容器资源请求的最小值时,Red Hat OpenShift Pipelines 会查看项目中的所有 LimitRange
值,并使用最小值而不是零。
在项目级别配置限制范围参数示例
apiVersion: v1 kind: LimitRange metadata: name: <limit_container_resource> spec: limits: - max: cpu: "600m" memory: "2Gi" min: cpu: "200m" memory: "100Mi" default: cpu: "500m" memory: "800Mi" defaultRequest: cpu: "100m" memory: "100Mi" type: Container ...