56 | Kubernetes存储扩展架构:一个真实的存储系统如何接入或移除新存储设备?
周志明
你好,我是周志明。
我们知道,容器存储具有很强的多样性,如何对接后端实际的存储系统,并且完全发挥出它所有的性能与功能,并不是 Kubernetes 团队所擅长的工作,这件事情只有存储提供商才能做到最好。所以,我们其实可以理解容器编排系统为什么会有很强烈的意愿,想把存储功能独立到外部去实现。
Kubernetes 存储架构
在正式开始讲解 Kubernetes 的 In-Tree、Out-of-Tree 存储插件前,我们有必要先去了解一点 Kubernetes 存储架构的知识。了解一个真实的存储系统是如何接入到新创建的 Pod 中,成为可以读写访问的 Volume,以及当 Pod 被销毁时,Volume 如何被回收,回归到存储系统之中的。
那么,对于刚刚所说的这几点,Kubernetes 其实是参考了传统操作系统接入或移除新存储设备的做法,把接入或移除外部存储这件事情,分解为了以下三个操作:
决定应准备(Provision)何种存储:Provision 可类比为给操作系统扩容而购买了新的存储设备。这步确定了接入存储的来源、容量、性能以及其他技术参数,它的逆操作是移除(Delete)存储。
将准备好的存储附加(Attach)到系统中:Attach 可类比为将存储设备接入操作系统,此时尽管设备还不能使用,但你已经可以用操作系统的fdisk -l命令查看到设备。这步确定了存储的设备名称、驱动方式等面向系统侧的信息,它的逆操作是分离(Detach)存储设备。
将附加好的存储挂载(Mount)到系统中:Mount 可类比为将设备挂载到系统的指定位置,也就是操作系统中mount命令的作用。这步确定了存储的访问目录、文件系统格式等面向应用侧的信息,它的逆操作是卸载(Unmount)存储设备。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Kubernetes存储扩展架构深入剖析 Kubernetes存储扩展架构涵盖了容器存储的多样性,以及如何将实际存储系统接入到Kubernetes中。文章介绍了Kubernetes存储架构的基本知识,包括存储设备的接入和移除过程,以及Kubernetes中的PV控制器、AD控制器和Volume管理器的作用。通过Provision、Attach、Mount等操作,存储插件实现了存储设备的管理和生命周期控制。此外,文章还探讨了存储插件的接口与实现,以及Kubernetes的容器存储生态。整体而言,本文深入解析了Kubernetes存储扩展架构,为读者提供了对容器存储生态的全面了解。 文章还介绍了Kubernetes存储扩展机制中的FlexVolume和CSI,分析了它们的特点和优劣势。FlexVolume是Kubernetes早期版本提供的存储扩展机制,虽然简单易用,但在功能上存在一些不足之处,如不支持Dynamic Provisioning、部署维护繁琐等。相比之下,CSI规范更加完善,提供了丰富的存储扩展功能,并且易于安装和维护。此外,文章还探讨了Kubernetes中存储驱动的迁移工作,从In-Tree到Out-of-Tree的变化,以及对旧功能的兼容性设计。 总的来说,本文通过深入剖析Kubernetes存储扩展架构和机制,为读者呈现了Kubernetes中容器存储的多样性和发展趋势,对于理解和应用Kubernetes存储扩展技术具有重要参考价值。
该试读文章来自《周志明的软件架构课》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- neohope存储小文件:用过本地存储、SSD、SAN、NAS、SFTP、Ceph【对象存储】,云存储【云盘、对象存储】 存储大文件:用过SAN、NAS、Ceph【块存储】、HDFS 存储XML用过existdb、Oracle XML DB 存储JSON用过mongodb、es 备份数据,用过磁带和蓝光盘 试过IPFS,但并没有实际投入使用 从底层介质来看:可以分为SSD、磁盘、磁盘阵列、磁带、光盘等 块存储,相当于划分了一块存储空间或一块逻辑盘,给了操作系统 文件存储,相当于操作系统在磁盘上创建了文件系统,可以作为本地磁盘使用,加上网络访问功能,可以封装成为NAS、SFTP等 HDFS,可以看作分布式的文件存储 对象存储,可以看作分布式的NAS IPFS,可以看作把一个BT网络,封装成了一个NAS2021-05-269
- Hello World曾带领团队实现过基于Posix接口(其对接分布式存储后端)之上提供NAS(NFS、SMB、FTP)服务。 主要差异在于接口形态及使用场景的不同, 块存储提供block接口,看起来就是一块大硬盘,上层没有文件系统,更倾向于高IOPS,如数据库; 文件系统提供目录的访问接口,场景较广(视频、媒资等默认是按照文件存放的都适用),存储容量较大(相对于块存储每GB更便宜)。 对象存储提供KV接口,一般是基于HTTP或AWS S3接口,存放小文件(如:图片)居多。2021-05-064
- zhanyd我网上找到的解释: 块存储、文件存储、对象存储这三者的本质差别是使用数据的“用户”不同:块存储的用户是可以读写块设备的软件系统,例如传统的文件系统、数据库;文件存储的用户是自然人;对象存储的用户则是其它计算机软件。2021-04-032
收起评论