Criando Armazenamento de Volume em Blocos Persistente

O serviço Compute Cloud@Customer Block Volume fornece armazenamento em blocos persistente, durável e de alto desempenho que você pode usar para armazenar dados fora dos contêineres.

Este procedimento cria automaticamente a classe de armazenamento oci-bv solicitada; você não precisa criá-la. Esse procedimento começa com o uso do comando kubectl para criar a reivindicação de volume persistente.

  1. Crie uma reivindicação de volume persistente, especificando o nome da classe de armazenamento oci-bv.

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

    Veja a seguir o conteúdo do arquivo csi-bvs-pvc.yaml:

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

    O nome da reivindicação de volume persistente na seção metadata é especificado pelo usuário. Você pode ter mais de uma reivindicação de volume persistente em um volume persistente.

    Para o valor de accessModes, especifique ReadWriteOnce; não use ReadWriteMany.

    O valor da propriedade storage deve ser de pelo menos 50 gigabytes.

  2. Execute o seguinte comando para verificar se a PVC foi criada:

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

    A PVC tem um status Pending porque a definição da classe de armazenamento oci-bv inclui o seguinte:

    volumeBindingMode: WaitForFirstConsumer
  3. Use a PVC ao criar outros objetos, como pods.

    Por exemplo, você pode criar um novo pod com base na seguinte definição de pod, que instrui o sistema a usar a PVC mynginxclaim como volume nginx, que é montado pelo pod em /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

    Execute o seguinte comando para verificar se a PVC foi vinculada a um novo PV:

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

    Execute o seguinte comando para verificar se o pod está usando a nova PVC:

    $ kubectl describe pod nginx