分布式存储、NAS存储、本地盘等,kafka容器化后如何进行存储选型保证其性能,扩容,数据安全以及容量管理?
看需求。
应用对kafka使用量不大,没有太高的性能要求(IO、延时),一般用分布式存储即可。或者,使用旧有NAS存储也可以。
如果应用使用kafka很重,对IO、延时都有较高的要求,一般使用本地存储。原生的本地存储方案功能比较简单,可以看看carina。
首先,K8S对存储做了抽象,不关心集中式还是分布式,主要还是看性能、可靠性、扩展能力、功能等能否匹配业务要求。
在这个前提下,本地盘虽然性能较好,但可靠性、扩展能力、跨节点共享能力等都问题突出,存算分离是更好的选择。
扩容方面,无论是分布式存储、NAS存储(本文主要是指企业级NAS存储)都具备PB级以上的扩容能力,单卷也支持弹性扩容,都可以满足要求。
从时延角度,由于分布式存储涉及到跨节点副本转发,时延比企业级NAS高,需要看是否满足业务需求。
在安全方面,NAS存储相对块存储更优,可以支持租户隔离、多种鉴权模式、防病毒、防勒索检测等功能。
在容量管理上,我们推荐使用租户级配额来实现一个Kafka集群的容量管理,这样存储管理员只需要管理整个集群可用的存储容量,而不需要限制每个PV的大小,管理更简单。