Kubernetes的资源限制一般是以Namespace为单位进行限制
为Namespace限额的方式有两种:ResourceQuota和LimitRange
ResourceQuota 用来限制 namespace 中所有的 Pod 占用的总的资源 request 和 limit
LimitRange 用来限制 namespace 中 单个Pod 默认资源 request 和 limit
下面看具体案例
1,首先创建namespace
1)LimitRange限制方式:
相应的yaml文件
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-limit-range
namespace: myns
spec:
limits:
- default: #默认上限
cpu: 1000m
defaultRequest:
cpu: 1000m
min:
cpu: 500m
max:
cpu: 2000m
maxLimitRequestRatio: #定义最大值是最小值的几倍,当前为4倍
cpu: 4
type: Container
用kubectl apply -f 进行创建
用kubectl get Limit Range cpu-limit-range -n myns进行查看
2)ResourceQuota限制方式
相应的yaml文件
apiVersion: v1
kind: ResourceQuota
metadata:
name: quota-example
namespace: myns
spec:
hard:
pods: "5"
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
count/deployments.apps: "2"
count/deployments.extensions: "2"
persistentvolumeclaims: "2"
应用后可以用下面语句进行查看
kubectl get ResourceQuota -n myns
kubectl describe ResourceQuotae -n myns