配置 Volume
建立 PersistentVolume ( PV )和 PersistentVolume Claim ( PVC )、使用設定的 Kubernetes StorageClass 來要求存取 PV 。然後、您可以將 PV 掛載至 Pod 。
總覽
答 "PersistentVolumer" ( PV )是叢集管理員在 Kubernetes 叢集上配置的實體儲存資源。。 "_PersistentVolume Claim" ( PVC )是存取叢集上 PersistentVolume 的要求。
可將 PVC 設定為要求儲存特定大小或存取模式。叢集管理員可以使用相關的 StorageClass 來控制超過 PersistentVolume 大小和存取模式的權限、例如效能或服務層級。
建立 PV 和 PVC 之後、您可以將磁碟區裝入 Pod 。
範例資訊清單
PersistentVolume 範例資訊清單
此範例資訊清單顯示與 StorageClass 相關的 10Gi 基本 PV 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"
PersistentVolume Claim 範例資訊清單
這些範例顯示基本的 PVC 組態選項。
此範例顯示具有 rwo 存取權的基本 PVC 、與命名的 StorageClass 相關聯 basic-csi
。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: basic-csi
此範例顯示 NVMe / TCP 的基本 PVC 、並提供與命名 StorageClass 相關的 rwo 存取 protection-gold
。
--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-san-nvme spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: protection-gold
Pod 資訊清單範例
這些範例顯示將 PVC 連接至 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
建立 PV 和 PVC
-
建立 PV 。
kubectl create -f pv.yaml
-
確認 PV 狀態。
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv-storage 4Gi RWO Retain Available 7s
-
建立 PVC 。
kubectl create -f pvc.yaml
-
確認 PVC 狀態。
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-storage Bound pv-name 2Gi RWO 5m
-
將磁碟區裝入 Pod 。
kubectl create -f pv-pod.yaml
您可以使用監控進度 kubectl get pod --watch
。 -
確認磁碟區已掛載到上
/my/mount/path
。kubectl exec -it task-pv-pod -- df -h /my/mount/path
-
您現在可以刪除 Pod 。Pod 應用程式將不再存在、但該磁碟區仍會保留。
kubectl delete pod task-pv-pod
如需儲存類別如何與互動的詳細資訊 PersistentVolumeClaim
、以及控制 Trident 配置磁碟區的參數、請參閱"Kubernetes和Trident物件"。