Persistenter Speicher
Einrichtung eines persistenten Speichers
Das AI-Labor bietet begrenzten persistenten Speicher, als Block Storage über einen CEPH Cluster an. Dieser Speicherplatz kann in der ICC in Form von Volumes mit festgelegter Größe genutzt werden.
-
Erzeugen Sie in Ihrem Projekt eine Datei my-pvc.yaml für einen PersistentVolumeClaim mit folgendem Inhalt.
1 2 3 4 5 6 7 8 9 10 11 12 13
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: <my-storage-claim> namespace: <space-name> labels: service: haw-world spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Mi
- Ersetzen Sie das Feld <my-storage-claim> mit einem Namen für Ihren PersistentVolumeClaim.
- Ersetzen Sie das Feld <space-name> mit dem Namen des Spaces, indem der PersistentVolumeClaim angelegt werden soll.
-
Legen Sie den Claim im Cluster an. Geben Sie dazu den folgenden Befehl in einem Terminal an.
1
kubectl apply -f my-pvc.yaml
-
Erweitern Sie das Deployment in Ihrer deploy.yaml um die Referenzierung des VolumeClaims und geben Sie den Mountpfad an.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
apiVersion: apps/v1 kind: Deployment metadata: name: haw-world namespace: <space-name> labels: service: haw-world spec: selector: matchLabels: service: haw-world template: metadata: labels: service: haw-world spec: containers: - image: <Pfad aus Container Registry> name: haw-world volumeMounts: - mountPath: "/var/www/html/data" name: my-volume # Hier können Sie einen beliebigen Namen wählen ports: - containerPort: 80 protocol: TCP imagePullSecrets: - name: <SecretName> volumes: - name: my-volume persistentVolumeClaim: claimName: my-storage-claim # Dies ist der Name aus der YAML - Datei --- apiVersion: v1 kind: Service metadata: name: haw-world namespace: <space-name> labels: service: haw-world spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: service: haw-world type: ClusterIP
Beachten Sie, dass der MountPath auf das
/var/www/html/data
Verzeichnis Ihres Containers gesetzt wird. Damit sind alle Daten innerhalb dieses Verzeichnisses auf dem Volume gespeichert. Ihre Anwendung legt die Zugriffslogs entsprechend in diesem Verzeichnis ab. -
Schreiben Sie nun diese Deploymentbeschreibung in den Cluster, führen Sie dazu den folgenden Befehl aus.
1
kubectl apply -f deploy.yaml
Sobald der Pod zum Deployment erzeugt wird, wird der PersistentVolumeClaim durch Kubernetes an ein PersistentVolume gebunden, welches gegen den CEPH Cluster provisioniert wird. Je nach angeforderter Größe kann die Provisionierung zwischen wenigen Sekunden (< 1GB) bis hin zu mehreren Minuten in Anspruch nehmen.
Sollten Fehler auftreten, können Sie die Logs mit Hilfe der nachfolgenden Befehle einsehen.1
kubectl describe pvc <PVC-name> # Name aus dem vorherigen Schritt
- Wenn Sie Ihr PVC nicht mehr benötigen, löschen Sie dieses wieder mit dem folgenden Befehl, damit die Ressourcen wieder freigegeben werden.
1
kubectl delete pvc -f my-pvc.yaml