Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

配置卷

贡献者

创建一个使用已配置的Kubernetes StorageClass来请求对PV的访问的永久性卷(PV)和永久性卷克莱姆(PVC)。然后、您可以将PV挂载到POD。

概述

A "PersigentVolume" (PV)是由集群管理员在Kubbernetes集群上配置的物理存储资源。 "PersigentVolumeClaim"(PVC)是指请求访问集群上的永久卷。

可以将PVC配置为请求特定大小的存储或访问模式。通过使用关联的StorageClass,集群管理员可以控制不限于持续卷大小和访问模式(例如性能或服务级别)。

创建PV和PVC后、您可以将卷挂载到Pod中。

示例清单

PerfsentVolume示例清单

此示例清单文件显示了与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"
PersentVolumeClaim示例清单

这些示例显示了基本的PVC配置选项。

PVC、带读取器

此示例显示了一个具有读取权限的基本PVC,该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关联的具有读取权限的NVMe/TCP的基本PVC 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

有关存储类如何与和参数交互以控制Astra Trident如何配置卷的详细信息 PersistentVolumeClaim、请参见"Kubernetes 和 Trident 对象"