Persistenten Dateisystemspeicher mit einem vorhandenen Dateisystem erstellen
Auf Compute Cloud@Customer können Sie ein PVC in einem vorhandenen Dateisystem bereitstellen.
Mit diesem Verfahren werden ein Mountziel, ein Dateisystem und ein Dateisystemexport erstellt. Verwenden Sie dann den Befehl kubectl
, um die Speicherklasse, das persistente Volume und den Persistent Volume Claim zu erstellen.
-
Mountziel erstellen.
Weitere Anweisungen finden Sie unter Mountziel erstellen.
Wichtig
Um sicherzustellen, dass das Mountziel von Worker-Knoten aus erreicht werden kann, erstellen Sie das Mountziel in dem Subnetz, das das unter OKE-Netzwerkressourcen erstellen beschriebene Worker-Subnetz enthält. Stellen Sie sicher, dass der TCP-Port 2049 für den NFS-Server in diesem Subnetz geöffnet ist.
Beachten Sie die Exportset-OCID und die Mountziel-OCID. Die Exportset-OCID ist erforderlich, um den Dateisystemexport zu erstellen. Die Mountziel-OCID ist erforderlich, um die Speicherklasse in späteren Schritten zu erstellen.
Sie können nur ein Mountziel pro VCN verwenden.
-
Dateisystem erstellen.
Weitere Anweisungen finden Sie unter Dateisystem erstellen.
Sie können nur ein Dateisystem pro VCN erstellen. Pro Cluster können mehrere Speicherklassen, Persistent Volumes und Persistent Volume Claims vorhanden sein, die alle ein NFS gemeinsam verwenden.
-
Erstellen Sie einen Dateisystemexport, um das Mount-Ziel mit dem Dateisystem zu verknüpfen.
Weitere Anweisungen finden Sie unter Export für ein Dateisystem erstellen.
-
Geben Sie die Exportset-OCID aus der Ausgabe beim Erstellen des Mountziels an.
-
Geben Sie das längste CIDR (kleinstes Netzwerk) im CIDR-Bereich an, den Sie beim Erstellen des Subnetzes "Worker" angegeben haben, wie unter OKE-Netzwerkressourcen erstellen beschrieben.
Notieren Sie sich den Exportpfad und die IP-Adresse des Mountziels.
-
-
Erstellen Sie eine Speicherklasse, und geben Sie die Mountziel-OCID aus der Ausgabe des Schritts "Mountziel erstellen" an.
$ kubectl create -f sc.yaml
Der Inhalt der Datei
sc.yaml
lautet wie folgt:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
Die Werte der Eigenschaften
apiVersion
undprovisioner
sind standardmäßig. Der Wert des Speicherklassennamens im Metadatenabschnitt ist vom Benutzer angegeben. Sie können mehrere Speicherklassen pro Mountziel erstellen. In den folgenden Schritten wird der Speicherklassenname verwendet, um einen persistenten Volume- und Persistent Volume Claim zu erstellen.Mit dem Unterbefehl
get sc
können Sie Informationen zur neuen Speicherklasse anzeigen:$ kubectl get sc
-
Erstellen Sie ein persistentes Volume, und geben Sie den Speicherklassennamen, den Exportpfad und die IP-Adresse des Mountziels an.
Der Speicherklassenname befindet sich in den Metadaten in der Datei
sc.yaml
im vorherigen Schritt. Der Exportpfad und die IP-Adresse des Mountziels werden aus dem Exportschritt "Dateisystem erstellen" ausgegeben. Siehe Schritt 3 oben.$ kubectl create -f pv.yaml
Der Inhalt der Datei
pv.yaml
lautet wie folgt:apiVersion: v1 kind: PersistentVolume metadata: name: fss-pv spec: storageClassName: pca-fss capacity: storage: 200Gi accessModes: - ReadWriteMany mountOptions: - nosuid nfs: server: mount_target_IP_address path: "/export/unique_ID" readOnly: false
Der persistente Volume-Name im Abschnitt
metadata
ist vom Benutzer angegeben. Eine Speicherklasse kann mehrere persistente Volumes enthalten.Im Abschnitt
nfs
ist der Wertserver
die IP-Adresse des Mountziels, und der Wertpath
ist der Exportpfad.Verwenden Sie den Unterbefehl
get pv
, um Informationen zum neuen persistenten Volume anzuzeigen:$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fss-pv 200Gi RWX Retain Bound default/fss-pvc pca-fss 20h
-
Erstellen Sie einen persistenten Volume Claim, und geben Sie den Namen des persistenten Volumes und den Speicherklassennamen an.
Der Name des persistenten Volumes und der Speicherklassenname befinden sich in der Ausgabe des Befehls
get pv
.Warten Sie, bis der PVC-Status gebunden ist, bevor Sie diesen Speicher verwenden.
kubectl create -f pvc.yaml
Der Inhalt der Datei
pvc.yaml
lautet wie folgt:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
Der Persistent Volume Claim-Name im Abschnitt
metadata
ist vom Benutzer angegeben. Für ein persistentes Volume können mehrere Persistent Volume Claims vorhanden sein.Der Wert der Eigenschaft
accessModes
mussReadWriteMany
lauten.Der Wert der Eigenschaft
storage
muss mindestens 50 GB betragen.Führen Sie den folgenden Befehl aus, um Informationen zum neuen Persistent Volume Claim anzuzeigen:
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h
-
Verwenden Sie den PVC beim Erstellen anderer Objekte, wie Pods.
Beispiel: Sie können einen neuen Pod aus der folgenden Poddefinition erstellen, die das System anweist, den PVC
fss-pvc
als Volumenginx
zu verwenden, das vom Pod unter/persistent-storage
gemountet ist:apiVersion: v1 kind: Pod metadata: name: fss-dynamic-app spec: containers: - name: nginx image: nginx:latest ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-pvc
Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Pod den neuen PVC verwendet:
$ kubectl describe pod fss-dynamic-app