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