Home > Software design >  PV & PVC with EKS Cluster
PV & PVC with EKS Cluster

Time:03-22

After kubectl apply -f pvc.yaml the below yaml file, I can able to find the mount path /var/local/pvctest inside the container that has been created. But, the host path /var/local/pvctest in the worker node is not created.

I'm new to PV & PVC with EKS and any help to fix this issue is much appreciated!

kind: Deployment
apiVersion: apps/v1
metadata:
  name: pvctest
  labels:
    alias: pvctest
spec:
  selector:
    matchLabels:
      alias: pvctest
  replicas: 1
  template:
    metadata:
      labels:
        alias: pvctest
    spec:
      containers:
      - name: pvctest
        image: neo4j
        ports:
        - containerPort: 7474
        - containerPort: 7687
        volumeMounts:
        - name: testpv
          mountPath: /var/local/pvctest
      volumes:
      - name: testpv
        persistentVolumeClaim:
          claimName: pvctest-claim
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pvtest
  labels:
    type: local
spec:
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 3Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /var/local/pvctest
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvctest-claim
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

                  

CodePudding user response:

PersistentVolume with hostPath requires the directory on the host to be pre-created. If you want the directory to be created automatically for you:

...
containers:
- name: pvctest
  image: neo4j
  ...
  volumeMounts:
  - name: testpv
    mountPath: /var/local/pvctest
volumes:
- name: testpv
  hostPath:
    path: /data
    type: DirectoryOrCreate

PV/PVC is actually optonal for hostPath.

  • Related