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. Anschließend erstellt der Befehl kubectl die Speicherklasse, das persistente Volume und den Persistent Volume Claim.
-
Mountziel erstellen.
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 OCID des Mountziels ist erforderlich, um die Speicherklasse in späteren Schritten zu erstellen.
Pro VCN darf nur ein Mountziel vorhanden sein.
-
Dateisystem erstellen.
Anweisungen hierzu finden Sie unter Dateisystem erstellen.
Sie können nur ein Dateisystem pro VCN erstellen. Sie können mehrere Speicherklassen, Persistent Volumes und Persistent Volume Claims pro Cluster haben, und alle teilen sich ein NFS.
-
Erstellen Sie einen Dateisystemexport, um das Mountziel mit dem Dateisystem zu verknüpfen.
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 Workersubnetz erstellen (Flannel-Overlay) oder Workersubnetz erstellen (VCN-nativer Pod) 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 Standard. Der Wert des Speicherklassennamens im Metadatenabschnitt ist benutzerdefiniert. Sie können mehrere Speicherklassen pro Mountziel erstellen. Der Speicherklassenname wird in den folgenden Schritten verwendet, um einen Persistent Volume- und Persistent Volume Claim zu erstellen.Verwenden Sie den Unterbefehl
get sc, um Informationen zur neuen Speicherklasse anzuzeigen:$ kubectl get sc -
Erstellen Sie ein persistentes Volume mit dem Namen der Speicherklasse, dem Exportpfad und der IP-Adresse des Mountziels.
Der Name der Speicherklasse 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.$ 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 Name des persistenten Volumes im Abschnitt
metadataist benutzerdefiniert. In einer Speicherklasse können mehrere persistente Volumes vorhanden sein.Im Abschnitt
nfsist der Wertserverdie IP-Adresse des Mountziels, und der Wertpathist der Exportpfad.Mit dem Unterbefehl
get pvkönnen Sie Informationen zum neuen persistenten Volume anzeigen:$ 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 Persistent Volume Claim, indem Sie den Persistent Volume-Namen und den Speicherklassennamen angeben.
Der Name des persistenten Volumes und der Speicherklasse sind in der Ausgabe des Befehls
get pventhalten.Warten Sie, bis der PVC-Status "Bound" lautet, 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 benutzerdefiniert. Auf einem persistenten Volume können mehrere Persistent Volume Claims vorhanden sein.Der Wert der Eigenschaft
accessModesmussReadWriteManysein.Der Wert der Eigenschaft
storagemuss mindestens 50 Gigabyte 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, der das System anweist, den
fss-pvc-PVC alsnginx-Volume zu verwenden, das vom Pod unter/persistent-storagegemountet wird: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 das neue PVC verwendet:
$ kubectl describe pod fss-dynamic-app