claim用法c语言中,通过一个例子学习Kubernetes里的PersistentVolumeClaim的用法

Kubernetes的pod本身是无状态的(stateless),生命周期通常比较短,只要出现了异常,Kubernetes就会自动创建一个新的Pod来代替它。

而容器产生的数据,会随着Pod消亡而自动消失。

为了实现Pod内数据的存储管理,Kubernetes引入了两个API资源:Persistent Volume(持久卷,以下简称PV)和Persistent Volume Claim(持久卷申请,以下简称PVC)。

PV是Kubernetes集群中的一种网络存储实现,跟Node一样,也是属于集群的资源。

PV跟Docker里的Volume(卷)类似,不过会有独立于Pod的生命周期。

使用kubectl get pv查看列表:

09591be004fd837adda3af6635dafb35.png

而PVC是用户的一个请求,跟Pod类似。Pod消费Node的资源,PVC消费PV的资源。

f8221b856dc1e6012689349d1ea98875.png

Pod 能够申请特定的资源(CPU和内存);PVC能够申请特定的尺寸和访问模式,例如可以加载一个读写实例或者多个只读实例,(就是上图kubectl get pvc返回结果的Access Mode这一列的值RWO, ROX等等)而无须感知这些实例背后具体的存储实现。

我们来看一个具体的PVC实例,名称为nginx-pvc:

kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nginx-pvc spec: storageClassName: default accessModes: - ReadOnlyMany resources: requests: storage: 1Gi

c8364c5add522388e300f9f294bfe14d.png

使用命令kubectl create -f pvc.yaml创建这个yaml文件定义的persistent volume claim:

a2a15b1a8ad529336eed09325fb9005e.png

然后定义一个pod,消费这个名为nginx-pvc的persistent volume claim:

9d06f123e562c19bac84f1873396f597.png

0f6bc6846c0a61cd679f04b3bf299fcf.png

使用kubectl describe pvc nginx-pvc查看这个persistent volume claim对应生成的persistent volume:

3e7fe5061c9918e7654a35de1566607b.png

7f617d2264a024e36e040fcc88e89d17.png

现在我用命令kubectl cp train.jpg nginx-storage-pod:/usr/share/nginx/html将两个文件train.jpg和index.html文件拷贝到pod内部文件路径/usr/share/nginx/html下面:

506cac34ab132a6be59d3de62ef370de.png

现在切换到nginx-storage-pod pod里,在/usr/share/nginx/html目录下果然发现了这两个文件:

7eb1642fd1a064eb0cd069eeb2c0ede5.png

接下来我定义了另一个pod,同样适用nginx-pvc这个PVC:

4c631ea81e32b0cc4ec259fd8c63cd9e.png

创建完这个pod之后,then kubectl exec -ti another ash 进入pod内部/usr/share/nginx/html,同样发现了index.html和train.jpg.

2fcbd6ccaac9288d99e6e010d63a0aea.png

这个例子说明persistent volume claim能够用于在多个pod间共享持久化数据。 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

41492ef04729085183e07e9b5ec99556.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值