【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十一)

本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

思考一下问题:

89、 k8s数据持久化的方式有哪些?

参考答案:

复制代码
89、 k8s数据持久化的方式有哪些?
答:
1)EmptyDir(空目录):
没有指定要挂载宿主机上的某个目录,直接由Pod内保部映射到宿主机上。类似于docker中的managervolume。
主要使用场景:
只需要临时将数据保存在磁盘上,比如在合并/排序算法中;
作为两个容器的共享存储,使得第一个内容管理的容器可以将生成的数据存入其中,同时由同一个
webserver容器对外提供这些页面。
emptyDir的特性:
同个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:删除云存储资源,云存储专用;
PS:这里的回收策略指的是在PV被删除后,在这个PV下所存储的源文件是否删除)。
若需使用PV,那么还有一个重要的概念:PVC,PVC是向PV申请应用所需的容量大小,K8s集群中可能
会有多个PV,PVC和PV若要关联,其定义的访问模式必须一致。定义的storageClassName也必须一
致,若群集中存在相同的(名字、访问模式都一致)两个PV,那么PVC会选择向它所需容量接近的PV去
申请,或者随机申请。
相关推荐
Johny_Zhao2 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
DKPT3 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
代码老y4 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
好好研究5 小时前
学习栈和队列的插入和删除操作
数据结构·学习
新中地GIS开发老师6 小时前
新发布:26考研院校和专业大纲
学习·考研·arcgis·大学生·遥感·gis开发·地理信息科学
SH11HF7 小时前
小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
学习·云计算
Frank学习路上7 小时前
【IOS】XCode创建firstapp并运行(成为IOS开发者)
开发语言·学习·ios·cocoa·xcode
Chef_Chen8 小时前
从0开始学习计算机视觉--Day07--神经网络
神经网络·学习·计算机视觉
X_StarX10 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS10 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习