前言
为了防止容器调度到资源不足的节点上,可以为容器指定资源最少要求量。
为了防止容器无节制的使用 CPU、内存 等资源,可以为容器指定资源最大允许使用量。
更新历史
- 20200714 - 初稿 - 左程立
- 原文地址 - https://blog.zuolinux.com/2020/07/14/container-resources-request-limit.html
资源请求和资源约束
可以为容器指定资源请求量和资源约束量。
资源一般指 CPU、内存。
资源请求量,指容器要求节点分配的最小容量,如果该节点可用容量小于容器要求的请求量,容器将被调度到其他合适节点。
资源约束量,指容器要求节点限制其使用的最大容量,如果容器内存使用量超过内容约束量,容器将被杀掉,如果指定了重启策略,容器杀掉后将被重启。
涉及的参数
约束量
spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
spec.containers[].resources.limits.hugepages-<size>
请求量
spec.containers[].resources.requests.cpu
spec.containers[].resources.requests.memory
spec.containers[].resources.requests.hugepages-<size>
示例
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: app
image: images.my-company.example/app:v4
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
- name: log-aggregator
image: images.my-company.example/log-aggregator:v6
resour