Creación de almacenamiento de volumen en bloque persistente

El servicio de volúmenes en bloque de Compute Cloud@Customer proporciona un almacenamiento de bloques persistente, duradero y de alto rendimiento que puede utilizar para almacenar datos fuera de contenedores.

Este procedimiento crea automáticamente la clase de almacenamiento oci-bv solicitada; no es necesario que la cree. Este procedimiento comienza con el comando kubectl para crear la reclamación de volumen persistente.

  1. Cree una reclamación de volumen persistente y especifique el nombre de clase de almacenamiento oci-bv.

    $ kubectl create -f csi-bvs-pvc.yaml

    El siguiente es el contenido del archivo csi-bvs-pvc.yaml:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: mynginxclaim
    spec:
      storageClassName: "oci-bv"
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 50Gi

    El nombre de reclamación de volumen persistente en la sección metadata está especificado por el usuario. Puede tener más de una reclamación de volumen persistente en un volumen persistente.

    Para el valor de accessModes, especifique ReadWriteOnce. No utilice ReadWriteMany.

    El valor de la propiedad storage debe ser de al menos 50 gigabytes.

  2. Ejecute el siguiente comando para verificar que la PVC se ha creado:

    $ kubectl get pvc
    NAME           STATUS   VOLUME   CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    mynginxclaim   Pending                                    oci-bv         4m

    La PVC tiene el estado Pending porque la definición de clase de almacenamiento oci-bv incluye lo siguiente:

    volumeBindingMode: WaitForFirstConsumer
  3. 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 mynginxclaim como volumen nginx, montado por el Pod en /data:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - name: http
              containerPort: 80
          volumeMounts:
            - name: data
              mountPath: /usr/share/nginx/html
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: mynginxclaim

    Ejecute el siguiente comando para verificar que la PVC se haya enlazado a un nuevo PV:

    $ kubectl get pvc
    NAME           STATUS   VOLUME          CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    mynginxclaim   Bound    csi-unique_ID   50Gi       RWO           oci-bv

    Ejecute el siguiente comando para verificar que el pod está utilizando la nueva PVC:

    $ kubectl describe pod nginx