Kubernetes中的pvc使用

Kubernetes中的pvc使用

PVC是资源的申请,用来声明对存储空间、访问模式、存储类别需求信息,如下为PVC的资源文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc
  namespace: dev
spec:
  accessModes:  # 访问模式
  selector:  # 采用标签对PV选择
  storageClassName:  # 存储类别
  resources:  # 请求空间
    requests:
      storage: 2Gi

PVC的关键配置参数说明

  • 访问模式(accessModes)
    用于描述用户应用对存储资源的访问权限

  • 选择条件
    通过Label Selecot的设置,可使PVC对于系统中已存在的PV进行筛选

  • 存储类别
    PVC在定义时可以设定需要的后端存储的类别,只有设置了该class的PV才能被系统选出

  • 资源请求
    对存储资源的请求

pvc实例

apiVersion: v1
kind: Namespace
metadata:
  name: dev

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc1
  namespace: dev
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc2
  namespace: dev
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc3
  namespace: dev
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

在创建pod的yaml中申请pvc,编辑pod_pvc.yaml文件,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: pod1
  namespace: dev
spec:
  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.yaml
pod/pod1 created
[root@master volume]#

根据上面的创建的资源可以发现,pvc1使用的是pv2,而pv2挂载的是nfs中的/root/data/pv2的目录,此时查看目录如下,已经存在out.txt文件了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值