一. 资源限制
二. 资源限制示例
1.首先将测试镜像上传到私有仓库 2.创建编辑文件 vim limit.yaml
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
spec:
containers:
- name: memory-demo
image: stress
args:
- --vm #启用一个进程
- "1"
- --vm-bytes #占用的内存
- 200M
resources:
requests: #最少限制
memory: 50Mi
limits: #最多限制
memory: 100Mi 这里改为210即可此时发现创建失败因为超过了定义的最高限制
将内存给的高于占用内存即可
limitrange范围限制
创建编辑文件 vim.range.yaml
request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。
limit(资源限额):运行Pod期间,内存使用量会增加,最多能使用多少内存,这就是资源限额
### LimitRange 在 namespace 中施加的最小和最大内存限制只有在创建和更新 Pod 时才会被应用。改变 LimitRange 不会对之前创建的 Pod 造成影响。
apiVersion: v1
kind: LimitRange
metadata:
name: limitrange-memory
spec:
limits:
- default:
cpu: 0.5
memory: 512Mi
defaultRequest:
cpu: 0.1
memory: 256Mi
max: #最大值
cpu: 1
memory: 1Gi
min: #最小值
cpu: 0.1
memory: 100Mi
type: Container创建的pod自动添加限制
自定义限制的pod也需要在limitrange定义的区间内
RecourceQueta配额限制
1. 在上面文件后添加模块 vim.range.yaml
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-demo
spec:
hard: #要求
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
pods: "2" #pod上限
记得回收: kubectl delete -f range.yamlkubectl delete pod --all