资源配额
资源配额
我们可以给某个命名空间设置资源配额,比如在命名空间default下创建一个如下的ResourceQuota对象
apiVersion: v1
kind: ResourceQuota
metadata:
name: resourcequota
namespace: default
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
pods: "100"
那么,default命名空间下,所有Pod的
requests.cpu之和不能超过"1"
requests.memory之和不能超过"1Gi"
limits.cpu之和不能超过“2”
limits.memory之和不能超过“2Gi”
pods数不能超过“100”
当我们在命名空间中创建了一个ResourceQuota对象之后,该命名空间下所有的Pod都必须指定requests与limits。
LimitRange
我们可以在命名空间中创建一个LimitRange对象,如下:
apiVersion: v1
kind: LimitRange
metadata:
name: limitrange
namespace: default
spec:
limits:
- type: Container
min:
cpu: "0.5"
memory: 512Mi
max:
cpu: "1"
memory: 1Gi
defaultRequest:
cpu: "0.8"
memory: 800Mi
default:
cpu: "0.8"
memory: 800Mi
那么,该命名空间下的Pod的资源配置需要满足:
min.cpu <= requests.cpu <= limits.cpu <= max.cpu
min.memory <= requests.memory <= limits.memory <= max.memory
如果该命名空间下的Pod没有指定requests与limits,那么
requests.cpu会默认设置为defaultRequest.cpu
requests.memory会默认设置为defaultRequest.memory
limits.cpu会默认设置为default.cpu
limits.memory会默认设置为default.memory
注意事项
虽然我们可以在一个命名空间下创建多个ResourceQuota与LimitRange对象,但是我们并不建议这么做,因为这会导致不可预知的效果
Last updated
Was this helpful?