上周,我在我们各个数据库交流群发起了一个话题:
数据库到底该不该容器化?
收集到这些讨论(当然也欢迎大家继续在留言区讨论):
@徐涛
到底要不要容器化,其实还看应用场景,一些快速迭代的轻量级还是很实用的,但是如果是体量大的数据库集群环境就会变得比较复杂了
在 I/O 密集的应用中影响会大一点,因为容器化本来就会带来一定的额外开销。
@奋斗
容器化数据库性能还有损耗,我们一个项目就是容器化部署。
@和谐
主要看技术,会就应该容器化,如果不会弄就说不应该搞。
@记忆
问题是为啥要容器化,是考虑到弹性扩容吗?
@🍃
我们之前的压测结果 Docker部署的性能差5%内,8.0比5.7忘了差多少,现在Docker部署5.7的方式跑了很久了。
@橘子
你买的那些RDS背后不都是吗?
@糠
个人感觉容器化可以,但是上K8S没必要。
@入一
还是要看业务场景和K8S的运维能力,容器化本身没有问题,毕竟各大厂商的RDS也都在用了。
@zxx
没有最完美的方案,只有最合适的方案。讨论这个问题,我觉得还是需要看企业的背景以及实力。
一旦上云,后面涉及到的复杂度就比纯物理机高好几个数量级。如果没有成熟的容器运维团队,仅仅依靠几个DBA真的很难搞定。
@俊赛潘安,才比管乐
我觉得 RDS不是 K8S调用的应用容器,应该是用其他工具管理的系统容器(lxc)。
@yl安
容器服务有问题搞崩数据库,然后没什么信息能查,会有这样的问题;
相比多套一层服务,裸机部署更稳定吧。除非容器有其他的优点吸引你。
@保鹏
看项目大小,数据量吧。
@豆汁儿
数据量、QPS、TPS等因素。
@云中书客
开发环境,小项目测试环境可以容器化,生产项目还是不要搞容器化好。运维起来不方便。
@微风细雨
阿里云RDS,腾讯云MySQL,都是容器化的吧,要配合 K8S编排才牛逼,光 Docker 没啥用。
看公司数据库规模吧,几千套 MySQL 集群可以考虑容器化。
以上就是收集到的一些讨论。
那容器化究竟有哪些好处和缺点呢?
容器化的好处
提高资源利用率:这个也是考虑容器化的主要原因,一台物理机上部署多个数据库实例,并且能实现一定程度上的资源隔离。
简化部署:通过 Docker和 K8S等工具,可以很快启动一个数据库实例。
标准化:可以通过容器镜像,保证数据库实例的环境一致性。
容器化的缺点
复杂度增加:增加了一层组件,增加了容器层面的运维、监控等工作。
容器本身的资源消耗:容器自身需要消耗部分内存和磁盘资源。
投票
最后,欢迎大家参与投票,其实我也好奇现在哪种情况最多。