Creación de almacenamiento de volúmenes en bloque persistente

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

Este procedimiento crea automáticamente la clase de almacenamiento oci-bv solicitada; no es necesario crearla. Este procedimiento comienza con el uso del comando kubectl para crear la reclamación de volúmenes persistentes.

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

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

    A continuación se muestra 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 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.

    Para el valor accessModes, especifique ReadWriteOnce; no utilice ReadWriteMany.

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

  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 ha 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