Provisionner un volume
Créez un volume persistant et une demande de volume persistant qui utilisent la classe de stockage Kubernetes configurée pour demander l'accès au volume persistant. Vous pouvez ensuite monter le volume persistant sur un pod.
Présentation
A "Volume persistant" (PV) est une ressource de stockage physique provisionnée par l'administrateur du cluster sur un cluster Kubernetes. Le "PersistentVolumeClaim" (PVC) est une demande d'accès au volume persistant sur le cluster.
Le PVC peut être configuré pour demander un stockage d'une certaine taille ou d'un certain mode d'accès. À l'aide de la classe de stockage associée, l'administrateur du cluster peut contrôler plus que la taille du volume persistant et le mode d'accès, tels que les performances ou le niveau de service.
Après avoir créé le volume persistant et la demande de volume persistant, vous pouvez monter le volume dans un pod.
Exemples de manifestes
Exemple de manifeste de volume persistant
Cet exemple de manifeste montre un volume persistant de base de 10Gi associé à StorageClass basic-csi
.
apiVersion: v1 kind: PersistentVolume metadata: name: pv-storage labels: type: local spec: storageClassName: basic-csi capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/my/host/path"
Exemples de manifestes de demande de volume persistant
Ces exemples présentent les options de configuration de base de la PVC.
Cet exemple montre une demande de volume persistant de base avec accès RWO associée à une classe de stockage nommée basic-csi
.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: basic-csi
Cet exemple présente une demande de volume persistant de base pour NVMe/TCP avec accès RWO associée à une classe de stockage nommée protection-gold
.
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-san-nvme spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: protection-gold
Échantillons de manifeste de pod
Ces exemples présentent les configurations de base pour fixer la demande de volume persistant à un pod.
kind: Pod apiVersion: v1 metadata: name: pv-pod spec: volumes: - name: pv-storage persistentVolumeClaim: claimName: basic containers: - name: pv-container image: nginx ports: - containerPort: 80 name: "http-server" volumeMounts: - mountPath: "/my/mount/path" name: pv-storage
--- apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: nginx name: nginx spec: containers: - image: nginx name: nginx resources: {} volumeMounts: - mountPath: "/usr/share/nginx/html" name: task-pv-storage dnsPolicy: ClusterFirst restartPolicy: Always volumes: - name: task-pv-storage persistentVolumeClaim: claimName: pvc-san-nvme
Créer le volume persistant et la demande de volume persistant
-
Créer la PV.
kubectl create -f pv.yaml
-
Vérifiez l'état du PV.
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-storage 4Gi RWO Retain Available 7s
-
Créer la PVC.
kubectl create -f pvc.yaml
-
Vérifiez l'état de la demande de volume persistant.
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 2Gi RWO 5m
-
Montez le volume dans un pod.
kubectl create -f pv-pod.yaml
Vous pouvez surveiller la progression à l'aide de kubectl get pod --watch
. -
Vérifiez que le volume est monté sur
/my/mount/path
.kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
Vous pouvez maintenant supprimer le Pod. L'application Pod n'existera plus, mais le volume restera.
kubectl delete pod task-pv-pod
Reportez-vous à la section "Kubernetes et objets Trident" pour plus d'informations sur l'interaction des classes de stockage avec le PersistentVolumeClaim
Et paramètres de contrôle du provisionnement des volumes par Astra Trident.