PersistentVolumeClaims和PersistentVolumes

说明

在 Kubernetes 中,PersistentVolumeClaims (PVC) 和 PersistentVolumes (PV) 是两个用于实现持久化存储的核心对象。它们通常用于挂载存储卷(如 NFS、iSCSI、Ceph 等)到容器中,以便在容器重启或调度到不同节点时保持数据不变。

PVC

PersistentVolumeClaims (PVC) 是用来声明对存储的需求,类似于 Pod 中的对 CPU 和内存资源的请求。PVC 可以指定需要的存储资源的大小、访问模式(读写、只读等)和存储卷类型等。PVC 可以独立于 Pod 创建,可以在多个 Pod 之间共享。

PV

PersistentVolumes (PV) 是提供持久化存储的实际资源。PV 可以使用不同的后端存储技术来支持各种存储介质,例如 NFS、iSCSI、Ceph 等。在创建 PV 时,可以指定存储的容量、访问模式、存储介质的类型以及其他元数据。PV 是集群范围内的资源,可以被多个 PVC 共享。PV 是先创建,然后通过 PVC 进行绑定使用。

使用 PersistentVolumeClaims 和 PersistentVolumes 的一般流程如下:

  1. 创建存储后端,例如使用 NFS 或 iSCSI 协议挂载远程存储,或使用本地存储进行挂载。
  2. 创建 PersistentVolumes (PV) 对象,定义存储的容量、访问模式、存储介质类型等属性。
  3. 创建 PersistentVolumeClaims (PVC) 对象,声明需要的存储资源大小、访问模式等属性,并指定需要的 PV 的标签或其他属性。
  4. 在 Pod 的配置中,通过 volume 和 volumeMounts 字段来引用 PVC

示例

# 创建一个 NFS 存储后端的 PersistentVolume 对象
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.1.100
    path: /nfs/data

# 创建一个 PersistentVolumeClaim 对象
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      type: nfs

# 在 Pod 配置中引用 PVC
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
    - name: my-container
      image: nginx
      volumeMounts:
        - name: nfs-volume
          mountPath: /data
  volumes:
    - name: nfs-volume
      persistentVolumeClaim:
        claimName: nfs-pvc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值