Kubernetes 中存储使用介绍(PV、PVC和StorageClass) |
您所在的位置:网站首页 › pvc和pv › Kubernetes 中存储使用介绍(PV、PVC和StorageClass) |
Kubernetes 中存储使用介绍 一、基本介绍 1.Volume 类型 2.PV 和 PVC 绑定条件 3.StorageClass 二、使用介绍 1.创建 PV 2.创建 PVC 3.创建 StorageClass 一、基本介绍在 Kubernetes 中的应用,都是以 Pod 的形式运行的,当我们要是在 Kubernetes 上运行一些需要存放数据的应用时,便需要关注应用存放的数据是否安全可靠。因为 Pod 是有生命周期的,那么也就是说当 Pod 被删除或重启后,Pod 里面所运行的数据也会随之消失。 因此,K8s 引入了 Volume(数据卷)的概念,使我们可以通过挂载的方式,将 Pod 内所需要存放的数据,挂载到宿主机的目录中。这样,我们便可以防止 Pod 内所运行的数据因为 Pod 的删除/重启而丢失。 1.Volume 类型emptyDir:临时目录,用于 Pod 内多容器共享目录,并不适用于需要保存数据的应用,因为 emptyDir 和 Pod 的生命周期相同。hostPath:主机目录,可以保证运行应用的数据不被丢失,但是需要将 Pod 每次都调度到同一台主机上。nfs:共享目录,可以保证运行应用的数据不被丢失。以上三种是较为常见的数据卷,同时,我们还可以通过配置 PV、PVC、StorageClass 来保证数据的持久化存储。 PV 的全称: PersistentVolume(持久化卷),是对底层共享存储的一种抽象,将共享存储定义为一种资源,它属于集群级别资源,不属于任何命名空间。PV 由管理员进行创建和配置,与共享存储的具体实现直接相关。 PVC 的全称: PersistentVolumeClaim(持久化卷声明),用来描述 Pod 对于 PV 存储的要求,以此来分配到合适的 PV 上。 Pod、PV、PVC 关系: 一个 Pod 可以挂载 n 个 PVC,同样一个 PVC 也可以给 n 个 Pod 提供服务。但是,一个 PVC 只能绑定一个 PV,一个 PV 只能对应一种后端存储。 注意: 要是当我们创建的 Pod 挂载的 PVC 没有和 PV 绑定成功,那么 Pod 将会一直处于 Pending 状态。 3.StorageClassKubernetes 提供了一种能够自动管理 PV 的机制,叫做 StorageClass(可以说是 PV 的模板,能够自动的创建 PV) 二、使用介绍准备工作: [root@k8s-master01 ~]# yum -y install nfs-utils rpcbind [root@k8s-master01 ~]# echo "/app *(rw,sync,no_root_squash)" > /etc/exports [root@k8s-master01 ~]# mkdir /app [root@k8s-master01 ~]# systemctl start rpcbind nfs1.创建 PV[root@k8s-master01 ~]# vim test-pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: nfs spec: capacity: storage: 2Gi # 存储容量为 2Gi accessModes: - ReadWriteOnce nfs: path: /app server: 192.168.1.1 [root@k8s-master01 ~]# kubectl create -f test-pv.yamlAccess Modes 访问模式: Reclaim Policy 回收策略: Delete(删除):当 PVC 被删除时,PV 同样会被删除。Retain(保留):当 PVC 被删除时,PV 并不会被删除,需要手动进行删除。Recycle(回收):当 PVC 被删除时,PV 上的数据也会随之删除,以便和新的 PVC 进行绑定(已被遗弃)2.创建 PVC1)创建 [root@k8s-master01 ~]# cat |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |