|
Q:k8s中资源限制,request和limit的资源有什么区别?
A:
Kubernetes通过cgroups限制容器的CPU和内存等计算资源, 包括requests( 请求, 调度器保证调度到资源充足的Node上) 和limits( 上限) 等:
-spec.containers[].resources.limits.cpu : CPU上限, 可以短暂超过, 容器也不会被停止
-spec.containers[].resources.limits.memory : 内存上限, 不可以超过; 如果超过, 容器可能会被停止或调度到其他资源充足的机器上
-spec.containers[].resources.requests.cpu : CPU请求, 可以超过
-spec.containers[].resources.requests.memory : 内存请求, 可以超过; 但如果超过, 容器可能会在Node内存不足时清理
比如nginx容器请求30%的CPU和56MB的内存, 但限制最多只用50%的CPU和128MB的内存:注意, CPU的单位是milicpu, 500mcpu=0.5cpu; 而内存的单位则包括E, P, T, G, M, K,
Ei, Pi, Ti, Gi, Mi, Ki等。- apiVersion: v1
- kind: Pod
- metadata:
- labels:
- app: nginx
- name: nginx
- spec:
- containers:
- - image: nginx
- name: nginx
- resources:
- requests:
- cpu: "300m"
- memory: "56Mi"
- limits:
- cpu: "500m"
- memory: "128Mi"
复制代码 |
|