使用CSI和Kubernetes动态扩展存储卷
- 2019 年 12 月 5 日
- 笔记

作者:熊中哲(沃趣科技联合创始人)
Kubernetes本身有一个非常强大的存储子系统,涵盖了相当广泛的用例。然而,当计划使用Kubernetes构建产品级关系型数据库平台时,我们面临一个巨大的挑战:存储。 本文介绍如何扩展最新的Container Storage Interface 0.2.0并与Kubernetes集成,演示动态扩展存储卷容量的基本。
介绍
随着我们关注客户,特别是在金融领域,采用容器编排技术有很大的发展空间。
客户期待开源解决方案来重新设计现有的单体应用程序,这些应用程序已经在虚拟化基础架构或裸机上运行了数年。
考虑到可扩展性和技术成熟程度,Kubernetes和Docker位居榜首。但是,将单体应用程序迁移到像Kubernetes这样的分布式编排很有挑战性,而关系型数据库对于迁移至关重要。
关于关系型数据库,我们应该注意存储。Kubernetes本身有一个非常强大的存储子系统。它非常有用,涵盖了相当广泛的用例。当计划在生产中使用Kubernetes运行关系型数型据库时,我们面临一个巨大的挑战:存储。仍然欠缺一些基本功能。具体来说,动态扩展存储量。听起来很无聊但是非常需要,除了create和delete,以及mount和unmount之类的操作。
目前,扩展存储卷仅适用于那些存储供应商:
– gcePersistentDisk
– awsElasticBlockStore
– OpenStack Cinder
– glusterfs
– rbd
为了启用此功能,我们应该设置功能门ExpandPersistentVolumes为true,并打开PersistentVolumeClaimResize允许插件。启用PersistentVolumeClaimResize后,allowVolumeExpansion字段设置为true的存储类将允许调整大小。
遗憾的是,即使底层存储提供商具有此功能,也无法通过容器存储接口(CSI)和Kubernetes动态扩展存储卷。
本文将简要介绍CSI,然后详细介绍如何在现有CSI和Kubernetes上引入新的扩展存储卷功能。最后,本文将演示如何动态扩展存储卷容量。
链接以了解更多。
https://kubernetes.cn/blog/2018/08/02/dynamically-expand-volume-with-csi-and-kubernetes/