Exercise 8.4: Using a ResourceQuota to Limit PVC Count and Usage
{ kubectl delete deploy nginx-nfs kubectl delete pvc pvc-one kubectl delete pv nfs }kubectl create ns smallkubectl describe ns smallcat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: capacity: storage: 1Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain nfs: path: /data server: mynfs readOnly: false EOFcat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-one spec: accessModes: - ReadWriteMany resources: requests: storage: 200Mi EOFcat <<EOF | kubectl apply -n small -f - apiVersion: v1 kind: ResourceQuota metadata: name: storagequota spec: hard: persistentvolumeclaims: "10" requests.storage: "500Mi" EOFkubectl describe ns smallcat <<EOF | kubectl create -n small -f - apiVersion: apps/v1 kind: Deployment metadata: labels: run: nginx name: nginx-nfs spec: selector: matchLabels: run: nginx template: metadata: labels: run: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx volumeMounts: - name: nfs-vol mountPath: /opt ports: - containerPort: 80 protocol: TCP volumes: - name: nfs-vol persistentVolumeClaim: claimName: pvc-one EOFkubectl get pod -l run=nginx -n smallkubectl describe pod POD_NAME -n smallkubectl describe pod $(kubectl get pod -l run=nginx -n small -o=jsonpath='{.items[0].metadata.name}') -n smallkubectl describe ns smallsudo dd if=/dev/zero of=/data/bigfile bs=1M count=300kubectl describe ns smallkubectl delete deploy nginx-nfs -n smallkubectl describe ns smallkubectl delete pvc pvc-one -n smallkubectl describe ns smallkubectl get pv nfskubectl delete pv nfscat <<EOF | kubectl create -f - apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: capacity: storage: 1Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Delete nfs: path: /data/ server: mynfs readOnly: false EOFkubectl describe ns smallcat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-one spec: accessModes: - ReadWriteMany resources: requests: storage: 200Mi EOFkubectl describe ns smallcat <<EOF | kubectl apply -n small -f - apiVersion: v1 kind: ResourceQuota metadata: name: storagequota spec: hard: persistentvolumeclaims: "10" requests.storage: "100Mi" EOFkubectl describe ns smallcat <<EOF | kubectl create -n small -f - apiVersion: apps/v1 kind: Deployment metadata: labels: run: nginx name: nginx-nfs spec: selector: matchLabels: run: nginx template: metadata: labels: run: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx volumeMounts: - name: nfs-vol mountPath: /opt ports: - containerPort: 80 protocol: TCP volumes: - name: nfs-vol persistentVolumeClaim: claimName: pvc-one EOFkubectl get pod -l run=nginx -n small{ kubectl delete deploy nginx-nfs -n small kubectl delete pvc pvc-one -n small }kubectl get pv nfskubectl describe pv nfskubectl delete pv nfscat <<EOF | kubectl -n small apply -f - apiVersion: v1 kind: LimitRange metadata: name: storagelimits spec: limits: - type: PersistentVolumeClaim max: storage: 2Gi min: storage: 1Gi EOFkubectl describe ns smallcat <<EOF | kubectl create -f - apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: capacity: storage: 1Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle nfs: path: /data server: mynfs readOnly: false EOFkubectl get pv nfscat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-one spec: accessModes: - ReadWriteMany resources: requests: storage: 200Mi EOFcat <<EOF | kubectl -n small apply -f - apiVersion: v1 kind: LimitRange metadata: name: storagelimits spec: limits: - type: PersistentVolumeClaim max: storage: 2Gi min: storage: 100Mi EOFcat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-one spec: accessModes: - ReadWriteMany resources: requests: storage: 200Mi EOFcat <<EOF | kubectl apply -n small -f - apiVersion: v1 kind: ResourceQuota metadata: name: storagequota spec: hard: persistentvolumeclaims: "10" requests.storage: "500Mi" EOFcat <<EOF | kubectl create -n small -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-one spec: accessModes: - ReadWriteMany resources: requests: storage: 200Mi EOFcat <<EOF | kubectl create -n small -f - apiVersion: apps/v1 kind: Deployment metadata: labels: run: nginx name: nginx-nfs spec: selector: matchLabels: run: nginx template: metadata: labels: run: nginx spec: containers: - image: nginx imagePullPolicy: Always name: nginx volumeMounts: - name: nfs-vol mountPath: /opt ports: - containerPort: 80 protocol: TCP volumes: - name: nfs-vol persistentVolumeClaim: claimName: pvc-one EOFkubectl get pod -l run=nginx -n smallkubectl -n small exec deploy/nginx-nfs -- cat /opt/hello.txtkubectl delete deploy nginx-nfs -n small{ kubectl get pvc -n small kubectl get pv }kubectl delete pvc pvc-one -n smallkubectl get pvkubectl describe pv nfsls /data/kubectl delete pv nfskubectl delete ns small
Last updated