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.yamlDer Inhalt der Datei
sc.yamllautet wie folgt:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_IDDie Werte der Eigenschaften
apiVersionundprovisionersind 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 sckö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.yamlim 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.yamlDer Inhalt der Datei
pv.yamllautet 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: falseDer persistente Volume-Name im Abschnitt
metadataist vom Benutzer angegeben. Eine Speicherklasse kann mehrere persistente Volumes enthalten.Im Abschnitt
nfsist der Wertserverdie IP-Adresse des Mountziels, und der Wertpathist 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.yamlDer Inhalt der Datei
pvc.yamllautet wie folgt:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pvDer Persistent Volume Claim-Name im Abschnitt
metadataist vom Benutzer angegeben. Für ein persistentes Volume können mehrere Persistent Volume Claims vorhanden sein.Der Wert der Eigenschaft
accessModesmussReadWriteManylauten.Der Wert der Eigenschaft
storagemuss 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-pvcals Volumenginxzu verwenden, das vom Pod unter/persistent-storagegemountet 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-pvcFühren Sie den folgenden Befehl aus, um zu prüfen, ob der Pod den neuen PVC verwendet:
$ kubectl describe pod fss-dynamic-app