作者信息:https://home.cnblogs.com/u/huangjiabobk

在k8S中,PV和PVC如何使用?

在 Kubernetes (k8S) 中,PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 的使用涉及以下步骤:

创建 PersistentVolume (PV)
  1. 定义 PV
    首先,集群管理员需要创建一个或多个 PersistentVolume 资源。这通常在 YAML 文件中定义,并通过 kubectl apply 命令提交到集群。PV 定义包含如下的关键属性:
    • capacity: 指定 PV 的存储容量。
    • accessModes: 描述 PV 允许的访问模式(ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany)。
    • storageClassName: 如果有 StorageClass,则指定 PV 属于哪个类。
    • nfsawsElasticBlockStore 等:具体存储类型相关的配置信息,例如对于 NFS 类型的 PV,需要提供 NFS 服务器的地址和挂载路径。

示例 PV YAML 配置:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-nfs-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: /exports/data
    server: nfs-server.example.com
  storageClassName: managed-nfs-storage
创建 PersistentVolumeClaim (PVC)
  1. 定义 PVC
    开发者或应用所有者不需要关心具体的存储实现细节,只需声明他们所需要的存储资源规格。这通过创建 PersistentVolumeClaim 来完成,同样以 YAML 文件形式定义并通过 kubectl apply 提交。

    PVC 定义通常包括:

    • spec.resources.requests.storage: 请求的存储容量大小。
    • accessModes: 同样指明所需的访问模式。
    • storageClassName: 可选地指定希望使用的 StorageClass 名称。如果不指定,将匹配任何可用的 PV;如果集群中有默认的 StorageClass,则会自动关联。

示例 PVC YAML 配置:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: managed-nfs-storage
将 PVC 与 Pod 关联
  1. 在 Pod 中引用 PVC
    当 PVC 创建完成后,在需要持久化存储的 Pod 的容器卷配置部分引用此 PVC。当 Pod 运行时,Kubernetes 会自动将满足条件的 PV 绑定到 PVC,并将该 PV 挂载至 Pod 的相应目录下。

示例 Pod YAML 配置,其中 volumeMounts 字段将 PVC 挂载到容器内指定路径:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app-container
    image: my-app-image
    volumeMounts:
    - mountPath: /data
      name: my-pvc-volume
  volumes:
  - name: my-pvc-volume
    persistentVolumeClaim:
      claimName: my-nfs-pvc

综上所述,当 Pod 被调度并运行后,其内部的 /data 目录就会映射到由 PVC 绑定的 PV 上的实际存储空间上,从而实现了数据的持久化存储。即使 Pod 因为节点故障等原因被重新调度到其他节点,由于 PVC 与 PV 的绑定关系不变,Pod 在新的节点上仍能继续访问同一块存储区域中的数据。

posted @ 2024-02-15 07:19  黄嘉波  阅读(162)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波