Provisionner un volume
Créez un PersistentVolumeClaim (PVC) qui utilise le StorageClass Kubernetes configuré pour demander l'accès au PV. Vous pouvez ensuite monter le PV sur un pod.
Aperçu
Un "PersistentVolumeClaim" (PVC) est une demande d'accès au PersistentVolume sur le cluster.
Le PVC peut être configuré pour demander un espace de stockage d'une certaine taille ou un certain mode d'accès. En utilisant la StorageClass associée, l'administrateur du cluster peut contrôler plus que la taille et le mode d'accès du PersistentVolume—comme les performances ou le niveau de service.
Après avoir créé le PVC, vous pouvez monter le volume dans un pod.
Créer le PVC
-
Créez le PVC.
kubectl create -f pvc.yaml
-
Vérifiez l'état du PVC.
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 1Gi RWO 5m
-
Montez le volume dans un pod.
kubectl create -f pv-pod.yaml
Vous pouvez surveiller la progression en utilisant 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 pv-pod
Exemples de manifestes
Exemples de manifestes PersistentVolumeClaim
Ces exemples montrent les options de configuration de base des PVC.
Cet exemple montre un PVC de base avec un accès RWO qui est associé à un StorageClass nommé basic-csi.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: basic-csi
Cet exemple montre un PVC de base pour NVMe/TCP avec accès RWO qui est associé à un StorageClass nommé protection-gold.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-san-nvme
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 300Mi
storageClassName: protection-gold
Exemples de manifestes Pod
Ces exemples montrent des configurations de base pour attacher le PVC à un pod.
kind: Pod
apiVersion: v1
metadata:
name: pv-pod
spec:
volumes:
- name: storage
persistentVolumeClaim:
claimName: pvc-storage
containers:
- name: pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/my/mount/path"
name: storage
apiVersion: v1
kind: Pod
metadata:
name: pod-nginx
spec:
volumes:
- name: basic-pvc
persistentVolumeClaim:
claimName: pvc-san-nvme
containers:
- name: task-pv-container
image: nginx
volumeMounts:
- mountPath: "/my/mount/path"
name: basic-pvc
Consultez "Objets Kubernetes et Trident" pour plus de détails sur la manière dont les classes de stockage interagissent avec le PersistentVolumeClaim et les paramètres permettant de contrôler la façon dont Trident provisionne les volumes.