Creación de Almacenamiento Persistente del Sistema de Archivos con el Plugin de Volumen CSI
En Compute Cloud@Customer, puede aprovisionar una PVC en un nuevo sistema de archivos mediante el plugin de volumen CSI. Utilice el comando kubectl
para crear la clase de almacenamiento y la reclamación de volúmenes persistentes. El plugin de volumen CSI aprovisiona la PVC en un nuevo sistema de archivos.
Solo puede tener un destino de montaje y un sistema de archivos por VCN. Puede tener varias clases de almacenamiento, volúmenes persistentes y reclamaciones de volúmenes persistentes por cluster. Todas las clases de almacenamiento, los volúmenes persistentes y las reclamaciones de volúmenes persistentes en un cluster comparten un NFS.
-
Cree una nueva clase de almacenamiento que utilice el aprovisionador
fss.csi.oraclecloud.com
.$ kubectl create -f sc.yaml
A continuación, se muestra el contenido del archivo de manifiesto
sc.yaml
: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"
-
El nombre de la nueva clase de almacenamiento es
fss-dyn-storage
. -
Se necesita
mountTargetSubnetOcid
omountTargetOcid
. El valor demountTargetSubnetOcid
es el OCID de la subred en la que desea que el plugin CSI cree un destino de montaje. El valor demountTargetOcid
es el OCID de un destino de montaje existente. Si especificamountTargetSubnetOcid
ymountTargetOcid
, se utilizamountTargetOcid
y se ignoramountTargetSubnetOcid
.Para garantizar que se pueda acceder al destino de montaje desde los nodos de trabajador, especifique la subred que tiene configuración como la subred "worker" que se describe en Creating OKE Network Resources o cree el destino de montaje en la subred que tiene configuración como la subred de trabajador. Asegúrese de que el puerto TCP 2049 para el servidor NFS esté abierto en esa subred.
-
compartmentOcid
es opcional. Este valor es el OCID del compartimento en el que se creará el nuevo sistema de archivos (y el nuevo destino de montaje, si se especificamountTargetSubnetOcid
). El valor por defecto es el mismo compartimento que el cluster. -
Debe especificar
AUTOSELECT
como valor paraexportPath
. -
El valor
exportOptions
es la entrada de opciones de exportación NFS dentro de la exportación del sistema de archivos que define el acceso otorgado a los clientes NFS cuando se conectan a un destino de montaje.source
puede ser una única dirección IP o un rango de bloques CIDR. Este valor es un juego de parámetros en formato JSON. -
El valor de
encryptInTransit
especifica si se deben cifrar los datos en tránsito.
-
-
Cree una PVC para que la aprovisione el nuevo sistema de archivos en el servicio File Storage.
$ kubectl create -f fss-dyn-claim.yaml
A continuación, se muestra el contenido del archivo de manifiesto
fss-dyn-claim.yaml
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-dynamic-claim spec: accessModes: - ReadWriteMany storageClassName: "fss-dyn-storage" resources: requests: storage: 50Gi
-
Verifique que la PVC se haya enlazado al nuevo volumen persistente.
$ 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
-
Utilice la nueva PVC al crear objetos como pods.
A continuación se muestra un ejemplo de creación de objetos:
$ kubectl create nginx.yaml
A continuación se muestra el contenido del archivo
nginx.yaml
. ConsulteclaimName
en la última línea: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-claim
Verifique que el objeto se ha creado y desplegado:
$ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE nginx-deployment 3/3 3 0 104s