Creazione di una memorizzazione file system persistente mediante un file system esistente

In Compute Cloud@Customer, puoi eseguire il provisioning di un PVC su un file system esistente.

Questa procedura crea un'esportazione di destinazione di accesso, file system e file system. Quindi utilizza il comando kubectl per creare la classe di storage, il volume persistente e la richiesta di volume persistente.

  1. Creare una destinazione di accesso.

    Per istruzioni, vedere Creazione di una destinazione di accesso.

    Importante

    Per assicurarsi che la destinazione di accesso possa essere raggiunta dai nodi di lavoro, creare la destinazione di accesso nella subnet che dispone della subnet di lavoro descritta in Creazione di risorse di rete OKE. Assicurarsi che la porta TCP 2049 sul server NFS sia aperta in tale sottorete.

    Prendere nota dell'OCID del set di esportazione e dell'OCID della destinazione di accesso. L'OCID del set di esportazione è necessario per creare l'esportazione del file system e l'OCID della destinazione di accesso è necessario per creare la classe di storage nei passi successivi.

    È possibile avere una sola destinazione di accesso per ogni VCN.

  2. Creare un file system.

    Per le relative istruzioni, vedere Creazione di un file system.

    Puoi creare un solo file system per ogni VCN. Puoi avere più classi di storage, volumi persistenti e richieste di volume persistenti per cluster e tutte condividono un unico NFS.

  3. Crea un'esportazione del file system per associare la destinazione di accesso al file system.

    Per istruzioni, vedere Creazione di un'esportazione per un file system.

    • Specificare l'OCID del set di esportazione dall'output della creazione della destinazione di accesso.

    • Specificare il CIDR più lungo (rete più piccola) nell'intervallo CIDR specificato quando è stata creata la subnet "worker" come descritto in Creazione di risorse di rete OKE.

    Prendere nota del percorso di esportazione e dell'indirizzo IP della destinazione di accesso.

  4. Creare una classe di storage, specificando l'OCID della destinazione di accesso dall'output del passo di creazione della destinazione di accesso.

    $ kubectl create -f sc.yaml

    Di seguito è riportato il contenuto del file sc.yaml.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: pca-fss
    provisioner: fss.csi.oraclecloud.com
    parameters:
      mntTargetId: ocid1.mounttarget.unique_ID
                

    I valori delle proprietà apiVersion e provisioner sono standard. Il valore del nome della classe di memorizzazione nella sezione dei metadati è specificato dall'utente. È possibile creare più classi di storage per ogni destinazione di accesso e il nome della classe di storage viene utilizzato nei passi riportati di seguito per creare un volume persistente e una richiesta di volume persistente.

    Utilizzare il comando secondario get sc per visualizzare le informazioni sulla nuova classe di memorizzazione:

    $ kubectl get sc
  5. Creare un volume persistente, specificando il nome della classe di storage, il percorso di esportazione e l'indirizzo IP della destinazione di accesso.

    Il nome della classe di memorizzazione si trova nei metadati del file sc.yaml nel passo precedente. Il percorso di esportazione e l'indirizzo IP della destinazione di accesso vengono restituiti dal passo di esportazione Crea file system. Vedere il punto 3 sopra.

    $ kubectl create -f pv.yaml

    Di seguito è riportato il contenuto del file pv.yaml.

    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

    Il nome del volume persistente nella sezione metadata è specificato dall'utente. È possibile avere più volumi persistenti in una classe di storage.

    Nella sezione nfs, il valore server è l'indirizzo IP della destinazione di accesso e il valore path è il percorso di esportazione.

    Utilizzare il comando secondario get pv per visualizzare le informazioni sul nuovo volume persistente:

    $ 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. Creare una richiesta di volume persistente, specificando il nome del volume persistente e il nome della classe di storage.

    Il nome del volume persistente e il nome della classe di memorizzazione si trovano nell'output del comando get pv.

    Attendere che lo stato del PVC sia Limitato prima di utilizzare questa memoria.

    kubectl create -f pvc.yaml

    Di seguito è riportato il contenuto del file pvc.yaml.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: fss-pvc
    spec:
      storageClassName: pca-fss
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 200Gi
      volumeName: fss-pv

    Il nome richiesta volume persistente nella sezione metadata è specificato dall'utente. È possibile avere più richieste di volume persistenti su un volume persistente.

    Il valore della proprietà accessModes deve essere ReadWriteMany.

    Il valore della proprietà storage deve essere di almeno 50 gigabyte.

    Eseguire il comando seguente per visualizzare informazioni sulla nuova richiesta di volume persistente:

    $ kubectl get pvc
    NAME      STATUS   VOLUME   CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    fss-pvc   Bound    fss-pv   200Gi      RWX           pca-fss        2h
  7. Utilizzare il PVC quando si creano altri oggetti, come i baccelli.

    Ad esempio, è possibile creare un nuovo pod dalla seguente definizione di pod, che indica al sistema di utilizzare il PVC fss-pvc come volume nginx, montato dal pod all'indirizzo /persistent-storage:

    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

    Eseguire il comando seguente per verificare che il pod utilizzi il nuovo PVC:

    $ kubectl describe pod fss-dynamic-app