设置资源限制
更新时间:2023-04-21
命名空间中的资源使用限制(LimitRange)有利于资源的合理分配和管理,提高集群资源的利用率和可用性。本文介绍如何设置命名空间中资源的使用限制。,更多信息请见LimitRange。
前提条件
操作步骤
- 登录百度智能云管理控制台,进入产品服务>云原生>容器引擎 CCE,单击集群管理>集群列表,单击目标集群名称,进入"集群详情"页,在侧边栏单击命名空间。
-
在命名空间列表中单击目标命名空间的更多>设置资源限制操作。
-
配置该命名空间的CPU、内存资源限制。
限制名称 限制说明 CPU Request(请求) 容器没有声明CPU限制的情况下,该命名空间中每个容器执行请求占用CPU的最小值 CPU Limit(限制) 容器没有声明CPU限制的情况下,该命名空间中每个容器执行请求占用CPU的最大值 内存 Request(请求) 容器没有声明内存限制的情况下,该命名空间中每个容器执行请求占用内存的最小值 内存 Limit(限制) 容器没有声明内存限制的情况下,该命名空间中每个容器执行请求占用内存的最大值 说明:
- 不填表示对该资源无限制
- 仅在ResourceQuota设置了CPU、内存限制之后Rangelimit才会对Pod里的容器生效
- 单击确定,完成设置命名空间资源限制。
示例
使用 LimitRange 为 Container 设置默认 Resource
创建 LimitRange YAML,声明 Container 内存的默认限制量和默认请求量:
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
namespace: quota-example
spec:
limits:
- default:
memory: 512Mi
defaultRequest:
memory: 256Mi
type: Container
创建 Pod 如果没有声明 memory,会默认设置上该值:
spec:
resources:
limits:
memory: 512Mi
requests:
memory: 256Mi
更多内容可以参考:通过 LimitRange 限制范围
使用 LimitRange 为 Container 限制 Limits/Requests 的比例
如果指定了 LimitRange 对象的 spec.limits.maxLimitRequestRatio 字段,名称空间中的 Pod/容器的 request 和 limit 都不能为 0,且 limit 除以 request 的结果必须小于或等于 LimitRange 的 spec.limits.maxLimitRequestRatio。
1、创建 LimitRange YAML,声明名称空间中限制 Limits/Requests 的比例:
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
namespace: quota-example
spec:
limits:
- maxLimitRequestRatio:
memory: 2
type: Container
2、使用以下 YAML 创建 Deployment, 会发现 Pod 的最大内存限定(limit)超过最小内存请求(request)的两倍而无法创建 Pod :
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-example
namespace: quota-example
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
restartPolicy: Always
containers:
- name: nginx
image: hub.baidubce.com/cce/nginx-alpine-go:latest
imagePullPolicy: Always
resources:
limits:
cpu: 100m
memory: 1280Mi
requests:
cpu: 100m
memory: 128Mi