提个疑问,生产环境中的数据库可不可以用 docker 容器化部署?

2024 年 11 月 18 日
 liyunyang
想问一下各位大佬,目前生产环境有 3 个数据库,oracle 、mysql 、pgsql ,


现在因为国产化服务器的要求,公司重新申请了若干台的国产化的系统 AnolisOS


现在要对所有服务器和数据库都要进行迁移,并且开始使用 k8s ,


想说数据库也使用容器化部署(数据挂载到宿主机的形式)。


服务器的资源很够,用容器化部署数据库会不会不合适?(目前暂不考虑数据库扩容等问题)
13090 次点击
所在节点    程序员
93 条回复
r4aAi04Uk2gYWU89
2024 年 11 月 19 日
- 一般 PV 和 PVC 用的外部网络存储,延迟会高一些,但用本地硬盘,那必须绑定到某个 node 了,reschedule 换节点的功能就用不上了,感觉怪怪的。还会和其他 pod 竞争资源,追求稳定的话不如专用服务器。
- k8s 版本升级也会有数据库中断问题
ttkanni
2024 年 11 月 19 日
如果是简单玩玩,或者不重要的小业务系统,可以用容器跑数据库。把数据盘挂存储卷,做好备份和监控。
如果业务对延迟、并发性能敏感,不建议容器部署数据库。

容器上跑数据库,总的原则大概是:可以,但不建议。
yayoi
2024 年 11 月 19 日
感觉是有难度,要有特定的镜像的才行,不然的话主从的自动切换都是个问题.访问上要读写分离也是要配置.客户端有办法通过 7 层的 ingress 访问数据库吗,不能的话对运维也是很讨厌的事情.
salmon5
2024 年 11 月 19 日
完全可以,但是没必要。本来你是 DBA ,现在你要熟练掌握 K8S ,而且会变的很复杂,还记得滴滴 K8S 事故吧
salmon5
2024 年 11 月 19 日
你老老实实的虚拟机或者物理机上跑数据库,infra 至少可以安心的 5 年不大动。
跑在 k8s 上呢,每年至少来一次 k8s 大升级折腾一回?
julyclyde
2024 年 11 月 19 日
可以,但是没意义
还得挂一堆 volume 给它,和本地直接运行没什么本质区别
julyclyde
2024 年 11 月 19 日
@abolast 指定包版本号安装肯定是一致的啊
你可别说同一个版本号也可能被篡改过这种话哦,你们容器镜像也可能会出类似问题的
julyclyde
2024 年 11 月 19 日
@importmeta 其实最大的问题就是“你只会”、“没考虑过我什么不用”

而,“都能用,暂时没碰见用不了”反而不是主要矛盾
GBdG6clg2Jy17ua5
2024 年 11 月 19 日
你在问这个问题,我觉得你对 docker 还是不是很熟,而且你公司的 dba 也未必会运维。
所以,我建议你不要把数据库放在 docker 。
nivalxer
2024 年 11 月 19 日
可以,但是从描述上来看,应该对 k8s 方面不是特别了解,进 k8s ,要理解存储、有状态工作负载等概念,然后就是基础的数据库运维相关的操作,确保在出现问题后能够及时进行处理,否则的话,以自己和公司运维最熟悉的经验来做是最好的。没出问题的时候,公司不会认为做了多牛逼的事情,但一旦出问题了,谁改的谁就要背锅。
hh4062703
2024 年 11 月 19 日
可以试试 KubeBlocks
wnay
2024 年 11 月 19 日
可以,技术上没有障碍。不过决定容器化后,比如 mysql 的集群模式有几种方案,都要调研选择...
max8899
2024 年 11 月 19 日
@Suaxi kubeblocks 可以的,数据库容器化还没看到过好点的开源,好像是原来阿里的人搞得,还没看到平替的,打算入坑了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1090444

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX