Persistenten Dateisystemspeicher mit dem CSI-Volume-Plug-in erstellen
Auf Compute Cloud@Customer können Sie mit dem CSI-Volume-Plug-in einen PVC auf einem neuen Dateisystem bereitstellen. Verwenden Sie den Befehl kubectl, um die Speicherklasse und den Persistent Volume Claim zu erstellen. Das CSI-Volume-Plug-in stellt den PVC auf einem neuen Dateisystem bereit.
Pro VCN darf nur ein Mountziel und ein Dateisystem vorhanden sein. Pro Cluster können mehrere Speicherklassen, Persistent Volumes und Persistent Volume Claims vorhanden sein. Alle Speicherklassen, Persistent Volumes und Persistent Volume Claims in einem Cluster teilen sich ein NFS.
-
Erstellen Sie eine neue Speicherklasse, die den
fss.csi.oraclecloud.com-Provisioner verwendet.$ kubectl create -f sc.yaml
Der Inhalt der Manifestdatei
sc.yamllautet wie folgt:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: fss-dyn-storage provisioner: fss.csi.oraclecloud.com parameters: availabilityDomain: AD-1 compartmentOcid: ocid1.compartment.unique_ID mountTargetSubnetOcid: ocid1.subnet.unique_ID exportPath: AUTOSELECT exportOptions: "[{\"source\":\"0.0.0.0/0\",\"requirePrivilegedSourcePort\":false,\"access\":\"READ_WRITE\",\"identitySquash\":\"NONE\"}]" encryptInTransit: "false"-
Der Name für die neue Speicherklasse lautet
fss-dyn-storage. -
Entweder
mountTargetSubnetOcidodermountTargetOcidist erforderlich. Der Wert vonmountTargetSubnetOcidist die OCID des Subnetzes, in dem das CSI-Plug-in ein Mountziel erstellen soll. Der Wert vonmountTargetOcidist die OCID eines vorhandenen Mountziels. Wenn SiemountTargetSubnetOcidundmountTargetOcidangeben, wirdmountTargetOcidverwendet, undmountTargetSubnetOcidwird ignoriert.Um sicherzustellen, dass das Mountziel von Worker-Knoten aus erreicht werden kann, geben Sie das Subnetz mit einer Konfiguration wie dem Subnetz "Worker" an, das unter Workersubnetz erstellen (Flannel-Overlay) oder Workersubnetz erstellen (VCN-nativer Pod) beschrieben ist, oder erstellen Sie das Mountziel in dem Subnetz, das eine Konfiguration wie das Worker-Subnetz aufweist. Stellen Sie sicher, dass der TCP-Port 2049 für den NFS-Server in diesem Subnetz geöffnet ist.
-
Die
compartmentOcidist optional. Dieser Wert ist die OCID des Compartments, in dem das neue Dateisystem (und das neue Mountziel, wennmountTargetSubnetOcidangegeben ist) erstellt wird. Der Standardwert ist dasselbe Compartment wie das Cluster. -
Sie müssen
AUTOSELECTals Wert fürexportPathangeben. -
Der Wert
exportOptionsist der NFS-Exportoptionseintrag im Dateisystemexport, der den Zugriff definiert, der NFS-Clients beim Herstellen einer Verbindung zu einem Mountziel erteilt wird. Diesourcekann eine einzelne IP-Adresse oder ein CIDR-Blockbereich sein. Dieser Wert ist eine Gruppe von Parametern im JSON-Format. -
Der Wert von
encryptInTransitgibt an, ob Daten während der Übertragung verschlüsselt werden sollen.
-
-
Erstellen Sie einen PVC, der vom neuen Dateisystem im File Storage-Service bereitgestellt werden soll.
$ kubectl create -f fss-dyn-claim.yaml
Der Inhalt der Manifestdatei
fss-dyn-claim.yamllautet wie folgt:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "fss-dyn-storage" resources: requests: storage: 50Gi -
Prüfen Sie, ob der PVC an das neue Persistent Volume gebunden wurde.
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE fss-dynamic-claim Bound csi-fss-f6823a66-8b6f-4c42-9d1f-d25723e69257 50Gi RWX fss-dyn-storage 6m47s -
Verwenden Sie den neuen PVC, wenn Sie Objekte wie Pods erstellen.
Im Folgenden wird ein Beispielobjekt erstellt:
$ kubectl create nginx.yamlDer Inhalt der Datei
nginx.yamllautet wie folgt: SieheclaimNamein der letzten Zeile:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx_image_url ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-dynamic-claimPrüfen Sie, ob das Objekt erstellt und bereitgestellt wurde:
$ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 3/3 3 0 104s