为了实现资源被有效调度和分配时同时提高资源的利用率, k8s采用request和limit两种限制类型对资源进行分配。
limit/request 限制类型介绍
request
- 容器使用的最小资源需求, 作为容器调度时资源分配的判断依赖。
- 只有当前节点上可分配的资源量 >= request 时才允许将容器调度到该节点。
- request参数不限制容器的最大可使用资源
limit
- 容器能使用资源的最大值
- 设置为0表示对使用的资源不做限制, 可无限的使用
request 和 limit 关系
request能保证pod有足够的资源来运行, 而limit则是防止某个pod无限制的使用资源, 导致其他pod崩溃. 两者的关系必须满足:
0 <= request <= limit
如果limit=0表示不对资源进行限制, 这时可以小于request。
目前CPU支持设置request和limit,memory只支持设置request, limit必须强制等于request, 这样确保容器不会因为内存的使用量超过request但是没有超过limit的情况下被意外kill掉。
部署Efk
Pods "efk-kibana-5976555b66-drsp5" is forbidden: exceeded quota: default-8kwbt, requested: limits.cpu=3,limits.memory=5Gi, used: limits.cpu=2,limits.memory&#