I created a persistent volume claim with 20Mi storage limits
and 17 Mi storage requests
but I can upload a 50 Mi file in the hostPath
folder. But what I want is to limit the folder content size. If the folder has more than 20Mi content in it so Kubernetes should say it does not allow new files.
Persistent volume:
apiVersion: v1
kind: PersistentVolume
metadata:
name: example-pv
namespace: limit-range
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
hostPath:
path: /home/me/kubernetes/web
type: DirectoryOrCreate
Persistent volume claim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc
namespace: limit-range
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
limits:
storage: 20Mi
requests:
storage: 17Mi
Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: upload-preview-2
namespace: limit-range
spec:
selector:
matchLabels:
app: upload-preview-2
template:
metadata:
labels:
app: upload-preview-2
spec:
containers:
- image: upload-preview:latest
imagePullPolicy: Never
name: web
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/www/html/web
name: localpath
subPath: dev
volumes:
- name: localpath
persistentVolumeClaim:
claimName: pvc
With that configuration it does not give me what I expected. So I tried Limit range
and Quota
and still without the expected behavior.
Limit range:
apiVersion: v1 kind: LimitRange metadata: name: storagelimits namespace: limit-range spec: limits:
- type: PersistentVolumeClaim
max:
storage: 18Mi
min:
storage: 10Mi
Quota:
apiVersion: v1
kind: ResourceQuota
metadata:
name: storagequota
namespace: limit-range
spec:
hard:
persistentvolumeclaims: "5"
requests.storage: "18Mi"
I tried kubectl describe quota -n limit-range
and the result is:
Name: storagequota
Namespace: limit-range
Resource Used Hard
-------- ---- ----
persistentvolumeclaims 1 5
requests.storage 17Mi 18Mi
My thought is maybe it does not work because I'm using hostPath
.