Devi creare un Volume persistente , definendo la Classe di archiviazione come locale , quindi mappalo sul percorso locale.
Creazione della classe di archiviazione
classe-storage.yml
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
Quindi esegui kubectl create -f storage-class.yml
Creazione di valore persistente
pv-local.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- cka
Crea un volume persistente con kubectl create -f pv-sdc.yml
Un ultimo, crea una richiesta di volume persistente
pvc1.yml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc1
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 10Gi
Crea clain di volume persistente eseguendo kubectl create -f pvc1.yml
Per elencare i valori persistenti, esegui kubectl get pv
. Dovresti vedere un output come
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
local-pv 10Gi RWO Retain Available local-storage 10s
Il volume persistente sarà disponibile non appena un nodo lo utilizzerà.
Questo il post potrebbe aiutarti un po' di più.