一、限制申请存储空间的大小

1.在上面基础修改yaml文件

[root@k8s-master01 study]# vim limitrange.yaml 
apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-mem-limit-range
spec:
  limits:
  - default:
      cpu: 1
      memory: 512Mi
    defaultRequest:
      cpu: 0.5
      memory: 256Mi
    max:
      cpu: "2"
      memory: 1Gi
    min:
      cpu: "10m"
      memory: 128Mi
    type: Container
  - type: PersistentVolumeClaim
    max:
      storage: 2Gi
    min:
      storage: 1Gi

2.重新部署

[root@k8s-master01 study]# kubectl create ns rq-test
[root@k8s-master01 study]# kubectl replace -f limitrange.yaml -n rq-test 

3.结果验证,观察到参数已经配置完成

[root@k8s-master01 study]# kubectl get limitrange -n rq-test -oyaml
apiVersion: v1
items:
- apiVersion: v1
  kind: LimitRange
  metadata:
    creationTimestamp: "2022-12-11T02:11:12Z"
    name: cpu-mem-limit-range
    namespace: rq-test
    resourceVersion: "34235"
    uid: 3a3f1870-890c-4b67-aaf4-343b49bc6d75
  spec:
    limits:
    - default:
        cpu: "1"
        memory: 512Mi
      defaultRequest:
        cpu: 500m
        memory: 256Mi
      max:
        cpu: "2"
        memory: 1Gi
      min:
        cpu: 10m
        memory: 128Mi
      type: Container
    - max:
        storage: 2Gi
      min:
        storage: 1Gi
      type: PersistentVolumeClaim
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

#max最大PVC的空间
#min最小PVC的空间

4.编写一个yaml文件,用于测试

[root@k8s-master01 study]# vim pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources: 
    requests:
      storage: 8Gi
  storageClassName: slow

5.开始创建8G内存进行测试,观察到8G内容太大,报错

[root@k8s-master01 study]# kubectl create -f pvc.yaml -n rq-test
Error from server (Forbidden): error when creating "pvc.yaml": persistentvolumeclaims "myclaim" is forbidden: maximum storage usage per PersistentVolumeClaim is 2Gi, but request is 8Gi

6.修改yaml文件参数为1M,用于测试。观察到请求内存最少为1G,1M太少了,所以报错

[root@k8s-master01 study]# vim pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources: 
    requests:
      storage: 1Mi
  storageClassName: slow

[root@k8s-master01 study]# kubectl create -f pvc.yaml -n rq-test
Error from server (Forbidden): error when creating "pvc.yaml": persistentvolumeclaims "myclaim" is forbidden: minimum storage usage per PersistentVolumeClaim is 1Gi, but request is 1Mi