创建一个requests.cpu默认为0.5(0.5为半颗CPU,1个CPU等于1000m)、requests.memory默认为256MB;limits.cpu为1、limits.memory为512MB的LimitRange:
$ kubectl create -f cpu-mem-limit-range.yaml -n quota-example
limitrange/cpu-mem-limit-range created
$ kubectl get limitrange -n quota-example
NAME CREATED AT
cpu-mem-limit-range 2023-12-06T08:55:02Z
$ kubectl describe limitrange cpu-mem-limit-range -n quota-example
Name: cpu-mem-limit-range
Namespace: quota-example
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu - - 500m 1 -
Container memory - - 256Mi 512Mi -
假如此时创建一个没有配置requests和limits的Pod:
apiVersion: v1
kind: Pod
metadata:
name: default-cpu-demo
spec:
containers:
- name: myapp
image: nginx:1.16-alpine
$ kubectl get pod default-cpu-demo -n quota-example -o yaml
...
spec:
containers:
- image: nginx:1.16-alpine
imagePullPolicy: IfNotPresent
name: myapp
resources:
limits:
cpu: "1"
memory: 512Mi
requests:
cpu: 500m
memory: 256Mi
...
可以看到该Pod被设置为LimitRanger的默认配置。
$ kubectl describe limitrange cpu-mem-min-max-demo -n quota-example
Name: cpu-mem-min-max-demo
Namespace: quota-example
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu 200m 800m 800m 800m -
Container memory 500Mi 1Gi 1Gi 1Gi -
$ kubectl describe limitrange storagelimits -n quota-example
Name: storagelimits
Namespace: quota-example
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
PersistentVolumeClaim storage 1Gi 2Gi - - -