Um ein Persistent Volume (PV) für einen Longhorn Storage Provider in einem Kubernetes-Cluster zu erstellen, musst du mehrere Schritte durchführen. Longhorn ist eine verteilte Blockspeicherlösung für Kubernetes, und du kannst damit Persistent Volumes provisionieren. Hier sind die Schritte, um ein Persistent Volume für Longhorn zu erstellen: ### 1. Stelle sicher, dass Longhorn installiert ist Zuerst solltest du sicherstellen, dass Longhorn auf deinem Cluster installiert ist. Falls Longhorn noch nicht installiert ist, kannst du es mit Helm oder direkt aus den YAML-Dateien installieren. #### Mit Helm: ```bash helm repo add longhorn https://charts.longhorn.io helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace ``` #### Mit kubectl: ```bash kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.2.2/deploy/install.yaml ``` ### 2. Erstelle ein PersistentVolume (PV) und ein PersistentVolumeClaim (PVC) Nun kannst du ein Persistent Volume (PV) und einen Persistent Volume Claim (PVC) für den Longhorn-Storage erstellen. #### PV für Longhorn: Erstelle eine YAML-Datei (z.B. `longhorn-pv.yaml`), um ein Persistent Volume zu definieren: ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: longhorn-pv spec: capacity: storage: 10Gi # Setze die gewünschte Speichergröße volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain # Optionally, 'Delete' oder 'Recycle' storageClassName: longhorn # Verwende den Longhorn-StorageClass-Namen csi: driver: driver.longhorn.io # Der Longhorn CSI-Treiber volumeHandle: longhorn-pv # Ein eindeutiger Bezeichner für das Volume fsType: ext4 # Dateisystemtyp ``` #### PVC für Longhorn: Erstelle eine YAML-Datei für den Persistent Volume Claim (z.B. `longhorn-pvc.yaml`), um den PV zu beanspruchen: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: longhorn-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi # Die angeforderte Größe sollte mit der des PV übereinstimmen storageClassName: longhorn # Die gleiche StorageClass wie im PV volumeName: longhorn-pv # Der Name des PV, das für diesen PVC verwendet werden soll ``` ### 3. Anwenden der YAML-Dateien Nachdem du die YAML-Dateien erstellt hast, kannst du sie auf deinem Kubernetes-Cluster anwenden: ```bash kubectl apply -f longhorn-pv.yaml kubectl apply -f longhorn-pvc.yaml ``` ### 4. Überprüfen des Status Prüfe den Status der Persistent Volumes und Persistent Volume Claims: ```bash kubectl get pv kubectl get pvc ``` Das PV sollte nun mit dem PVC verbunden sein, und du kannst den Longhorn-Storage verwenden. ### 5. Beispiel: Pod mit PVC verwenden Nun kannst du einen Pod erstellen, der das PVC nutzt: ```yaml apiVersion: v1 kind: Pod metadata: name: longhorn-demo spec: containers: - name: demo-container image: nginx volumeMounts: - mountPath: /usr/share/nginx/html name: longhorn-volume volumes: - name: longhorn-volume persistentVolumeClaim: claimName: longhorn-pvc ``` Erstelle den Pod mit: ```bash kubectl apply -f pod.yaml ``` Dieser Pod wird nun das Persistent Volume, das du mit Longhorn erstellt hast, als Speicher verwenden. ### Fazit: Mit diesen Schritten hast du ein Persistent Volume (PV) und einen Persistent Volume Claim (PVC) für den Longhorn-Storage Provider erstellt. Du kannst das Volume nun in deinen Pods nutzen. ## Disable Localpath as default kubectl get storageclass kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'