linux怎么查看本机内存大小
298
2022-09-10
Kubernetes----高级存储之PVC
一、PVC简介
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc namespace: devspec: accessModes: # 访问模式 selector: # 采用标签对PV选择 storageClassName: # 存储类别 resources: # 请求空间 requests: storage:
PVC的关键配置参数说明
访问模式(accessModes)用于描述用户应用对存储资源的访问权限选择条件通过Label Selecot的设置,可使PVC对于系统中已存在的PV进行筛选存储类别PVC在定义时可以设定需要的后端存储的类别,只有设置了该class的PV才能被系统选出资源请求对存储资源的请求
二、PVC实例
编写pvc.yaml文件,申请PV,内容如下:
apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc1 namespace: devspec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc2 namespace: devspec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc3 namespace: devspec: accessModes: - ReadWriteMany resources: requests: storage:
使用如下命令创建pvc
[root@master volume]# kubectl apply -f pvc.yamlnamespace/dev createdpersistentvolumeclaim/pvc1 createdpersistentvolumeclaim/pvc2 createdpersistentvolumeclaim/pvc3 created[root@master volume]#
查看创建好的pvc资源,如下:
[root@master volume]# kubectl get pvc -n devNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEpvc1 Bound pv2 2Gi RWX 2m15spvc2 Bound pv1 2Gi RWX 2m15spvc3 Bound pv3 2Gi RWX 2m15s[root@master volume]#
此时再查看一下PV,如下,已经存在绑定关系了
[root@master volume]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEauth-mysql-pv 10Gi RWO Retain Bound lbsheng/auth-mysql-pv-claim manual 8dpv1 2Gi RWX Retain Bound dev/pvc2 31hpv2 2Gi RWX Retain Bound dev/pvc1 31hpv3 2Gi RWX Retain Bound dev/pvc3 31h[root@master volume]#
在创建pod的yaml中申请pvc,编辑pod_pvc.yaml文件,内容如下:
apiVersion: v1kind: Podmetadata: name: pod1 namespace: devspec: containers: - name: busybox image: busybox:1.30 command: ["/bin/sh","-c","while true;do echo pod1 >> /root/out.txt;sleep 10;done;"] volumeMounts: - name: volume mountPath: /root/ volumes: - name: volume persistentVolumeClaim: claimName: pvc1 readOnly: false
使用如下命令创建资源:
[root@master volume]# kubectl apply -f pod_pvc.yamlpod/pod1 created[root@master volume]#
根据上面的创建的资源可以发现,pvc1使用的是pv2,而pv2挂载的是nfs中的/root/data/pv2的目录,此时查看目录如下,已经存在out.txt文件了
[root@master volume]# ls /root/data/pv2out.txt[root@master volume]#
使用tail命令可以发现out.txt文件中的内容
[root@master volume]# tail -f /root/data/pv2/out.txt
如下删除pod以及pvc
[root@master volume]# kubectl delete -f pod_pvc.yamlpod "pod1" deleted[root@master volume]# kubectl delete -f pvc.yamlnamespace "dev" deletedpersistentvolumeclaim "pvc1" deletedpersistentvolumeclaim "pvc2" deletedpersistentvolumeclaim "pvc3" deleted[root@master volume]#
此时再查看pv可以发现此时pv的绑定关系已经释放了
[root@master volume]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEauth-mysql-pv 10Gi RWO Retain Bound lbsheng/auth-mysql-pv-claim manual 8dpv1 2Gi RWX Retain Released dev/pvc2 31hpv2 2Gi RWX Retain Released dev/pvc1 31hpv3 2Gi RWX Retain Released dev/pvc3 31h[root@master volume]#
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~