Microk8s Persistent Volumes
Permanenter Speicher
Bei jedem Deployment wird das Dateisystem des Pods gelöscht und neu erstellt.
Damit das Dateisystem erhalten bleibt, benötigen wir ein Persistent Volume sowie ein Persistent Volume Claim für den Pod
Storage Klasse (custom)
- apiVersion: storage.k8s.io/v1
- kind: StorageClass
- metadata:
- name: custom
- provisioner: kubernetes.io/no-provisioner
- volumeBindingMode: WaitForFirstConsumer
Persistent Volume
Ich brauche warum auch immer 2 Ingresses, einen für /ws2 und einen für /ws2/socket.io
Erstellt ein persistentes Volume von 5G auf dem lokalen Dateisystem.
- kind: PersistentVolume
- apiVersion: v1
- metadata:
- name: custom-default-backend
- labels:
- type: local
- spec:
- storageClassName: custom
- capacity:
- storage: 5Gi
- accessModes:
- - ReadWriteOnce
- hostPath:
- path: "/mnt/data/custom-default-backend"
- type: DirectoryOrCreate
Persistent Volume Claim
Stellt pro Claim (Anforderung) 1G für jeden Pod im Volume bereit
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: custom-default-backend-pvc
- spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 1Gi
- storageClassName: custom
Deployment Volume Mounts
Im Deployment kann wird festgelegt auf welche Pfade das persitente Volume gemountet wird.
Beispiel Deployment:
- volumeMounts:
- - name: nginx-configs
- mountPath: /etc/nginx/conf.d
- - name: docroot
- mountPath: /usr/share/nginx/html
- # Load the configuration files for nginx
- volumes:
- - name: nginx-configs
- configMap:
- name: nginx-config
- - name: docroot
- persistentVolumeClaim:
- claimName: custom-default-backend-pvc
- readOnly: false