23、 k8s数据持久化的方式有哪些?答:
1)EmptyDir(空目录)没有指定要挂载宿主机上的某个目录 , 直接由Pod内部映射到宿主机上 。 类似于docker中的manager volume 。
主要使用场景:
- 只需要临时将数据保存在磁盘上 , 比如在合并/排序算法中;
- 作为两个容器的共享存储 , 使得第一个内容管理的容器可以将生成的数据存入其中 , 同时由同一个webserver容器对外提供这些页面 。
同个pod里面的不同容器 , 共享同一个持久化目录 , 当pod节点删除时 , volume的数据也会被删除 。 如果仅仅是容器被销毁 , pod还在 , 则不会影响volume中的数据 。
【删除|23 个必知必会的 Kubernetes 高频面试题】总结来说: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
(版权归原作者所有 , 侵删)
- 微信这个功能容易被骗子绑定和利用,教你快速查清并删除
- 删除|Apple watch苹果手表如何更换电池?看完你是不是也学会了呢?
- 删除|被好友悄悄删除?微信右上角这个功能很方便,“黑名单”一清二楚
- 删除|微信朋友圈烦人的内容不想看?教你三招,快速删除!方法很简单
- 小鹏汽车回应盗用图片宣传:素材是供应商提供的,已删除
- 手机浏览“不良网站”,删除历史记录就有用吗?过来人给出答案
- 删除|台积电迎来3个“噩耗”,还能逆转局势吗?
- 软件|Win11要变流氓系统?新版本预装超多软件,还好删除很简单
- 微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了