ResourceQuota 和 LimitRange 的 YAML 模板与 CKAD 常考字段解析
ResourceQuota 限制命名空间总量,LimitRange 限制单个 Pod 或 Container 的默认值和范围。CKAD 出现频率不高,但属于常用资源。
YAML 模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: dev
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
pods: "10"
---
apiVersion: v1
kind: LimitRange
metadata:
name: container-limits
namespace: dev
spec:
limits:
- type: Container
default:
cpu: 200m
memory: 256Mi
defaultRequest:
cpu: 100m
memory: 128Mi
max:
cpu: "1"
memory: 1Gi
min:
cpu: 50m
memory: 64Mi
|
常考字段解析
ResourceQuota.spec.hard:命名空间资源硬限制。requests.cpu/memory:所有 Pod requests 总和限制。limits.cpu/memory:所有 Pod limits 总和限制。LimitRange.spec.limits[].type:常用 Container。default:容器未写 limits 时默认值。defaultRequest:容器未写 requests 时默认值。
常用命令
1
2
3
| k get quota,limitrange -n dev
k describe quota compute-quota -n dev
k describe limitrange container-limits -n dev
|
易错点
ResourceQuota 是 namespace 级资源,必须放在目标 namespace。- 开了 ResourceQuota 后,Pod 不写 requests/limits 可能被拒绝。