23、 k8s数据持久化的方式有哪些?答:
1)EmptyDir(空目录)没有指定要挂载宿主机上的某个目录 , 直接由Pod内部映射到宿主机上 。 类似于docker中的manager volume 。
主要使用场景:
- 只需要临时将数据保存在磁盘上 , 比如在合并/排序算法中;
- 作为两个容器的共享存储 , 使得第一个内容管理的容器可以将生成的数据存入其中 , 同时由同一个webserver容器对外提供这些页面 。
同个pod里面的不同容器 , 共享同一个持久化目录 , 当pod节点删除时 , volume的数据也会被删除 。 如果仅仅是容器被销毁 , pod还在 , 则不会影响volume中的数据 。
总结来说:emptyDir的数据持久化的生命周期和使用的pod一致 。 一般是作为临时存储使用 。
2)Hostpath将宿主机上已存在的目录或文件挂载到容器内部 。 类似于docker中的bind mount挂载方式 。
这种数据持久化方式 , 运用场景不多 , 因为它增加了pod与节点之间的耦合 。
一般对于k8s集群本身的数据持久化和docker本身的数据持久化会使用这种方式 , 可以自行参考apiService的yaml文件 , 位于:/etc/kubernetes/main…目录下 。
3)PersistentVolume(简称PV)基于NFS服务的PV , 也可以基于GFS的PV 。 它的作用是统一数据持久化目录 , 方便管理 。
在一个PV的yaml文件中 , 可以对其配置PV的大小 , 指定PV的访问模式:
- ReadWriteOnce:只能以读写的方式挂载到单个节点;
- ReadOnlyMany:能以只读的方式挂载到多个节点;
- ReadWriteMany:能以读写的方式挂载到多个节点 。 以及指定pv的回收策略:
- recycle:清除PV的数据 , 然后自动回收;
- Retain:需要手动回收;
- delete:删除云存储资源 , 云存储专用;
若需使用PV , 那么还有一个重要的概念:PVC , PVC是向PV申请应用所需的容量大小 , K8s集群中可能会有多个PV , PVC和PV若要关联 , 其定义的访问模式必须一致 。 定义的storageClassName也必须一致 , 若群集中存在相同的(名字、访问模式都一致)两个PV , 那么PVC会选择向它所需容量接近的PV去申请 , 或者随机申请 。
PS:这里的回收策略指的是在PV被删除后 , 在这个PV下所存储的源文件是否删除) 。
链接:https://tinyurl.com/ybfx3wtx
(版权归原作者所有 , 侵删)
相关经验推荐
- 删除|苹果要求App必须内置删除账号功能!6月30日是最后期限,网友:必须支持
- 微信|微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 华为|微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了
- 删除|人教Pad定价超四千元,由学校统一采购,官网删除价格,配置停留在七年前
- 删除|别再清理手机垃圾了,只需删除这4个文件夹,手机用多久都不会卡
- iPod|iPod 彻底被结束,页面也被悉数删除丨iPhone14 Max 被曝延迟生产
- 删除|红米K50大幅度降价,登顶销量榜首!卢伟冰这招绝了
- 微信|微信这个地方不删除,陌生人就能随意登录你微信,手把手教您删除
- 删除|3060高刷游戏本该选谁?这三款包你满意
- 删除|绿厂618购机活动有多狠?最高直降1500,数十款产品给足惊喜