Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

配置 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

此範例顯示具有 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

此範例顯示 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
基本 NVMe / TCP 組態
---
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

步驟
  1. 建立 PV 。

    kubectl create -f pv.yaml
  2. 確認 PV 狀態。

    kubectl get pv
    NAME        CAPACITY  ACCESS MODES  RECLAIM POLICY  STATUS    CLAIM  STORAGECLASS  REASON  AGE
    pv-storage  4Gi       RWO           Retain          Available                              7s
  3. 建立 PVC 。

    kubectl create -f pvc.yaml
  4. 確認 PVC 狀態。

    kubectl get pvc
    NAME        STATUS VOLUME     CAPACITY ACCESS MODES STORAGECLASS AGE
    pvc-storage Bound  pv-name 2Gi      RWO                       5m
  5. 將磁碟區裝入 Pod 。

    kubectl create -f pv-pod.yaml
    註 您可以使用監控進度 kubectl get pod --watch
  6. 確認磁碟區已掛載到上 /my/mount/path

    kubectl exec -it task-pv-pod -- df -h /my/mount/path
  7. 您現在可以刪除 Pod 。Pod 應用程式將不再存在、但該磁碟區仍會保留。

    kubectl delete pod task-pv-pod

請參閱 "Kubernetes和Trident物件" 如需儲存類別如何與互動的詳細資訊、請參閱 PersistentVolumeClaim 以及用於控制 Astra Trident 如何配置容量的參數。