K8S持久化存储PV和PVC精确绑定的简单实现

NFS服务器

[root@V71 nfs_test]# cat /etc/exports
#/nfs_test 192.168.0.0/16(rw,no_root_squash,no_all_squash,sync)
/nfs_test 192.168.0.0/16(rw,sync,all_squash)
/nfs2 192.168.0.0/16(rw,sync,all_squash)
/nfs3 192.168.0.0/16(rw,sync,all_squash)

[root@V71 nfs_test]# service nfs restart
Redirecting to /bin/systemctl restart nfs.service

配置两个PV,两个PVC,并分别对应,红色字体部份是绑定的键值

[root@k8s1 pv]# cat pv2.yml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv2
  labels:
    pv: two

spec:
  capacity:
    storage: 200Mi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.137.1
    path: /nfs2
[root@k8s1 pv]# cat pvc2.yml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc2
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 150Mi
  selector:
    matchLabels:
      pv: two

[root@k8s1 pv]# cat pv3.yml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv3
  labels:
    pv: three

spec:
  capacity:
    storage: 200Mi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.137.1
    path: /nfs3
[root@k8s1 pv]# cat pvc3.yml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc3
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 150Mi
  selector:
    matchLabels:
      pv: three

 

创建PV,PVC

[root@k8s1 pv]# kubectl create -f pv2.yml 
persistentvolume "pv2" created

[root@k8s1 pv]# kubectl create -f pvc2.yml 
persistentvolumeclaim "pvc2" created
[root@k8s1 pv]# kubectl create -f pv3.yml 
persistentvolume "pv3" created
[root@k8s1 pv]# kubectl create -f pvc3.yml 
persistentvolumeclaim "pvc3" created

此时查看PV,已经精确对应了

[root@k8s1 pv]# kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM          STORAGECLASS   REASON    AGE
pv1       2Gi        RWO            Recycle          Bound     default/pvc1                            16h
pv2       200Mi      RWX            Retain           Bound     default/pvc2                            58s
pv3       200Mi      RWX            Retain           Bound     default/pvc3                            17s

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PV(PersistentVolume)和PVC(PersistentVolumeClaim)是Kubernetes中用于实现持久化存储的重要概念。 PV是集群中的一块存储,可以是NFS、iSCSI、本地存储等,由管理员进行配置或使用存储类进行动态配置。PV定义了存储的容量、访问模式、持久化存储的类型等属性。PV的生命周期是独立于Pod的,即使Pod被删除,PV仍然存在,可以被其他Pod继续使用。 PVC是一个持久化存储卷,用于访问各种类型的持久化存储,如本地存储、网络存储、云存储等。PVC的使用使应用程序更加灵活和可移植,同时也提高了存储资源的利用率。PVCPV是一一对应的关系,即一个PVC只能绑定一个PV,而一个PV也只能被一个PVC绑定。 下面是一个演示k8s持久化存储PVPVC的案例: 1. 创建PV: ```yaml apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: my-storage-class nfs: path: /data server: nfs-server-ip ``` 2. 创建PVC: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: my-storage-class ``` 3. 创建Pod,并挂载PVC卷: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx volumeMounts: - name: my-volume mountPath: /data volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc ``` 4. 删除PVC的正确步骤: ```shell kubectl delete pod my-pod kubectl delete pvc my-pvc kubectl delete pv my-pv ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值