k8s的存储

目录

存储分类:

详情介绍:

EmptyDir:

HostPath:

NFS:

PV和PVC:

存储分类:

  • EmptyDir

  • HostPath

  • NFS

  • PV和PVC

详情介绍:

EmptyDir:

        EmptyDir是最基础的Volume类型,一个EmptyDir就是Host上的一个空目录。简单来说就是,他存储在pod中,当pod销毁时,EmptyDir中的数据也都一块被永久性的删除。它主要可作用于一个临时性的存储目录,同时也可以实现多容器数据共享。

HostPath:

        HostPath就是将Node主机中一个实际目录挂在到Pod中,以供容器使用,这样的设计就可以保证Pod销毁了,但是数据依据可以存在于Node主机上。简单来说就是他的数据是存储在node节点上的,可以保证当pod节点销毁时数据仍然存在,但是但若node节点坏掉,数据仍然还是会丢失。

NFS:

        为了解决HostPath出现的node节点的故障数据丢失的问题,我们可以用NFS服务器,将Pod中的存储直接连接到NFS系统上,这样的话,无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。

PV和PVC:

PV:一般情况下PV由kubernetes管理员进行创建和配置,它与底层具体的共享存储技术有关,并通过插件完成与共享存储的对接。

关键参数:

  • 存储类型

    底层实际存储的类型,kubernetes支持多种存储类型,每种存储类型的配置都有所差异.

  • 存储能力(capacity)

        目前只支持存储空间的设置( storage=1Gi ),不过未来可能会加入IOPS、吞吐量等指标的配置.

  • 访问模式(accessModes)

    用于描述用户应用对存储资源的访问权限,访问权限包括下面几种方式:

    • ReadWriteOnce(RWO):读写权限,但是只能被单个节点挂载

    • ReadOnlyMany(ROX): 只读权限,可以被多个节点挂载

    • ReadWriteMany(RWX):读写权限,可以被多个节点挂载

    需要注意的是,底层不同的存储类型可能支持的访问模式不同

  • 回收策略(persistentVolumeReclaimPolicy)

    当PV不再被使用了之后,对其的处理方式。目前支持三种策略:

    • Retain (保留) 保留数据,需要管理员手工清理数据

    • Recycle(回收) 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*

    • Delete (删除) 与 PV 相连的后端存储完成 volume 的删除操作,当然这常见于云服务商的存储服务

    需要注意的是,底层不同的存储类型可能支持的回收策略不同

  • 存储类别

    PV可以通过storageClassName参数指定一个存储类别

    • 具有特定类别的PV只能与请求了该类别的PVC进行绑定

    • 未设定类别的PV则只能与不请求任何类别的PVC进行绑定

  • 状态(status)

    一个 PV 的生命周期中,可能会处于4中不同的阶段:

    • Available(可用): 表示可用状态,还未被任何 PVC 绑定

    • Bound(已绑定): 表示 PV 已经被 PVC 绑定

    • Released(已释放): 表示 PVC 被删除,但是资源还未被集群重新声明

    • Failed(失败): 表示该 PV 的自动回收失败

PVC: 是用户向kubernetes系统发出的一种资源需求申请。

关键参数:

  • 访问模式(accessModes)

        用于描述用户应用对存储资源的访问权限

  • 选择条件(selector)

    通过Label Selector的设置,可使PVC对于系统中己存在的PV进行筛选

  • 存储类别(storageClassName)

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

  • 资源请求(Resources )

    描述对存储资源的请求

工作示意图: 

其中的PVC1和PVC2成功找到PV并进行挂载,PVC3未找到合适的PV,则一直处于Pending状态等待管理员创建PV。

 注意 :

        PV和PVC是一一对应的,用户创建PVC,kubernetes负责根据PVC的声明去寻找PV,并绑定。

        在用户定义好PVC之后,系统将根据PVC对存储资源的请求在已存在的PV中选择一个满足条件的

  • 一旦找到,就将该PV与用户定义的PVC进行绑定,用户的应用就可以使用这个PVC了

  • 如果找不到,PVC则会无限期处于Pending状态,直到等到系统管理员创建了一个符合其要求的PV

        PV一旦绑定到某个PVC上,就会被这个PVC独占,不能再与其他PVC进行绑定了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值