K8s local Persistent Volume on Docker Desktop loses data after Docker Desktop restart

Viewed 554

I have problem with PersistentVolume in local K8s cluster. When I am rebooting PC or close and open Desktop Docker I lose data in my PV.

This is my PV config:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvolume
  labels:
    name: pvolume
spec:
  storageClassName: manual
  volumeMode: Filesystem
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

Is there any possibility to keep data and not use external PV provider like GCP volume?

SOLUTION:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvolume
  labels:
   name: pvolume
spec:
  capacity:
    storage: 3Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: your-local-storage-class-name
  local:
    path: /c/yourDir
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - docker-desktop
1 Answers

As it is mentioned in links I have provided in comment section - read more: docker-desktop-pv, docker-desktop-pv-local - solution/workaround is to use different volume type. Change hostPath volume to local. Your PV yaml file should look like:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvolume
  labels:
    name: pvolume
spec:
  storageClassName: manual
  volumeMode: Filesystem
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteOnce
  local:
    path: /c/yourDirectory

local.path shows directly where you reference the Windows folder so that you can connect the PersistentVolume locally on a Windows machine.

  • hostPath- HostPath volume (for single node testing only; WILL NOT WORK in a multi-node cluster; consider using local volume instead) ...
  • local - local storage devices mounted on nodes.

See: types-of-pv.

Related