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