Création d'un stockage de volumes par blocs persistant

Le service de volume par blocs Compute Cloud@Customer fournit un stockage par blocs persistant, durable et haute performance que vous pouvez utiliser pour stocker des données en dehors des conteneurs.

Cette procédure crée automatiquement la classe de stockage oci-bv demandée; vous n'avez pas besoin de la créer. Cette procédure commence par l'utilisation de la commande kubectl pour créer la revendication de volume persistant.

  1. Créez une revendication de volume persistant, en spécifiant le nom de classe de stockage oci-bv.

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

    Le contenu du fichier csi-bvs-pvc.yaml est le suivant :

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

    Le nom de la revendication de volume persistant dans la section metadata est spécifié par l'utilisateur. Vous pouvez avoir plusieurs revendications de volume persistant sur un volume persistant.

    Pour la valeur de accessModes, spécifiez ReadWriteOnce; n'utilisez pas ReadWriteMany.

    La valeur de la propriété storage doit être d'au moins 50 gigaoctets.

  2. Exécutez la commande suivante pour vérifier que la revendication de volume persistant a été créée :

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

    La PVC a le statut Pending car la définition de la classe de stockage oci-bv inclut les éléments suivants :

    volumeBindingMode: WaitForFirstConsumer
  3. Utilisez la revendication de volume persistant lors de la création d'autres objets, tels que des pods.

    Par exemple, vous pouvez créer un nouveau module de réseautage à partir de la définition de module de réseautage suivante, qui demande au système d'utiliser la revendication de volume persistant mynginxclaim en tant que volume nginx, monté par le module de réseautage à l'adresse /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

    Exécutez la commande suivante pour vérifier que la revendication de volume persistant a été liée à un nouveau PV :

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

    Exécutez la commande suivante pour vérifier que le pod utilise la nouvelle revendication de volume persistant :

    $ kubectl describe pod nginx