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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 und provisioner 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
  5. 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 Wert server die IP-Adresse des Mountziels, und der Wert path 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
  6. 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 muss ReadWriteMany 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
  7. 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 Volume nginx 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