Creación de un almacenamiento de sistema de archivos persistente usando un sistema de archivos existente
En Compute Cloud@Customer, puede aprovisionar una PVC en un sistema de archivos existente.
Este procedimiento crea un destino de montaje, un sistema de archivos y una exportación de sistema de archivos. A continuación, utiliza el comando kubectl
para crear la clase de almacenamiento, el volumen persistente y la reclamación de volumen persistente.
-
Crear un destino de montaje.
Para obtener instrucciones, consulte Creating a Mount Target.
Importante
Para asegurarse de que se pueda acceder al destino de montaje desde los nodos de trabajador, cree el destino de montaje en la subred que tenga la subred de trabajador descrita en Creating OKE Network Resources. Asegúrese de que el puerto TCP 2049 para el servidor NFS esté abierto en esa subred.
Observe el OCID del juego de exportación y el OCID del destino de montaje. El OCID del juego de exportación es necesario para crear la exportación del sistema de archivos y el OCID del destino de montaje es necesario para crear la clase de almacenamiento en pasos posteriores.
Solo puede tener un destino de montaje por VCN.
-
Cree un sistema de archivos.
Para obtener instrucciones, consulte Creating a File System.
Solo puede crear un sistema de archivos por VCN. Puede tener varias clases de almacenamiento, volúmenes persistentes y reclamaciones de volúmenes persistentes por cluster, y todos ellos comparten un NFS.
-
Cree una exportación de sistema de archivos para asociar el destino de montaje al sistema de archivos.
Para obtener instrucciones, consulte Creating an Export for a File System.
-
Especifique el OCID del juego de exportación de la salida al crear el destino de montaje.
-
Especifique el CIDR más largo (red más pequeña) en el rango de CIDR que especificó al crear la subred de "trabajador", como se describe en Creating OKE Network Resources.
Observe la ruta de exportación y la dirección IP del destino de montaje.
-
-
Cree una clase de almacenamiento especificando el OCID de destino de montaje a partir de la salida del paso de creación de destino de montaje.
$ kubectl create -f sc.yaml
A continuación se muestra el contenido del archivo
sc.yaml
:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
Los valores de las propiedades
apiVersion
yprovisioner
son estándar. El valor del nombre de la clase de almacenamiento en la sección de metadatos está especificado por el usuario. Puede crear más de una clase de almacenamiento por destino de montaje, y el nombre de la clase de almacenamiento se utiliza en los siguientes pasos para crear una reclamación de volumen persistente y volumen persistente.Utilice el subcomando
get sc
para ver información sobre la nueva clase de almacenamiento:$ kubectl get sc
-
Cree un volumen persistente especificando el nombre de la clase de almacenamiento, la ruta de exportación y la dirección IP del destino de montaje.
El nombre de la clase de almacenamiento está en los metadatos del archivo
sc.yaml
del paso anterior. La ruta de exportación y la dirección IP del destino de montaje se muestran desde el paso de exportación del sistema de archivos de creación. Consulte el paso 3 anterior.$ kubectl create -f pv.yaml
A continuación se muestra el contenido del archivo
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
El nombre de volumen persistente de la sección
metadata
está especificado por el usuario. Puede tener más de un volumen persistente en una clase de almacenamiento.En la sección
nfs
, el valorserver
es la dirección IP de destino de montaje y el valorpath
es la ruta de exportación.Utilice el subcomando
get pv
para ver información sobre el nuevo volumen 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
-
Cree una reclamación de volumen persistente especificando el nombre del volumen persistente y el nombre de la clase de almacenamiento.
El nombre del volumen persistente y el nombre de la clase de almacenamiento se encuentran en la salida del comando
get pv
.Espere a que el estado de PVC sea Enlazado antes de utilizar este almacenamiento.
kubectl create -f pvc.yaml
A continuación se muestra el contenido del archivo
pvc.yaml
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
El nombre de reclamación de volumen persistente de la sección
metadata
está especificado por el usuario. Puede tener más de una reclamación de volumen persistente en un volumen persistente.El valor de la propiedad
accessModes
debe serReadWriteMany
.El valor de la propiedad
storage
debe ser de al menos 50 GB.Ejecute el siguiente comando para ver información sobre la nueva reclamación de volumen persistente:
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h
-
Utilice la PVC al crear otros objetos, como pods.
Por ejemplo, puede crear un nuevo pod a partir de la siguiente definición de pod, que indica al sistema que utilice la PVC
fss-pvc
como volumennginx
, montado por el pod en/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
Ejecute el siguiente comando para verificar que el pod está utilizando la nueva PVC:
$ kubectl describe pod fss-dynamic-app