首页 > 数据库 >别让 Docker 毁了你的 MySQL!

别让 Docker 毁了你的 MySQL!

时间:2024-03-26 10:59:13浏览次数:33  
标签:容器 服务 Kubernetes 状态 MySQL Docker

Docker 容器技术的火热,越来越多的应用开始被"装箱"。我们这些开发者享受着 Docker 带来的便捷和灵活,几乎恨不得把所有东西都塞进容器里。于是,连 MySQL 这样的有状态服务,也开始频频出现在 Docker 的舞台上。

但是,把 MySQL 装进 Docker,真的是个明智的选择吗?是否会给系统稳定性和数据安全带来隐患?这个问题在社区里引发了激烈的讨论。

"Docker 与有状态服务无缘"派

持反对意见的一派认为,所有有状态的服务,都不应该放在 Docker 里跑。他们列举了 MySQL、Redis、Elasticsearch、ActiveMQ 等服务作为例子,理由是这些服务都需要保证高可用和稳定性,而这恰恰是 Docker 难以做到的。

即便是在 Kubernetes 这样的容器编排平台中,他们也不建议把有状态服务放进去。这也是为什么云厂商会专门提供 MySQL、Redis、MQ 等服务的原因。

那么,究竟是什么原因让"Docker 与有状态服务无缘"呢?

首先,传统的高可用方案在容器中难以实现。以 MySQL 为例,传统的 HA 方案通常是两台机器+共享存储+Fence 设备。

但在 Kubernetes 中,这种方案如何配置?Fence 设备又该如何在容器中实现?这些都是没有现成答案的问题。

其次,一些 MySQL 的高可用和集群方案与 Docker 的理念不太兼容。

比如,MySQL 8.0 的 InnoDB Cluster 通常采用 1 主 2 从的模式,这在 Kubernetes 中如何实现?虽然有 MySQL Operator 这样的尝试,但成熟度和可行性还有待验证。

最后,对于 DBA 来说,在虚拟机上部署 MySQL 才是最熟悉和放心的方式。

毕竟数据库最需要的是稳定,调整 CPU、内存、磁盘等参数,再加上定期备份,就可以做到大多数时候"甩手掌柜"。

如果是在公有云上,那就更应该直接用云厂商提

标签:容器,服务,Kubernetes,状态,MySQL,Docker
From: https://blog.csdn.net/wjianwei666/article/details/137008286

相关文章

  • docker安装部署zabbix
    原文出处:https://blog.csdn.net/bjywxc/article/details/103308052 zabbix由2部分构成,zabbixserver与可选组件zabbixagent,要想搭建一个Zabbix的工作环境,主要有三个方面(界面、服务器和数据库)可以安装在同一台服务器上,也可以不在同一个服务器。本次使用Docker 开源的应用容器......
  • Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器
    Docker进阶:DockerSwarm(集群搭建)—实现容器编排的利器1、什么是DockerSwarm?2、DockerSwarm与DockerCompose的区别3、创建一个Swarm集群(1-Manager,2-Worker)1、资源准备2、初始化Swarm集群Manager节点3、添加Worker节点到Swarm集群4、Manager节点查看集群状态4、......
  • Centos7安装mysql8.0
    一、卸载MariaDB#查看版本rpm–qa|grepmariadb#卸载rpm–e--nodeps文件名#查看是否卸载干净rpm–qa|grepmariadb 二、安装mysql1、下载资源包 官网下载https://dev.mysql.com/downloads/mysql/Wget下载1、下载​wgethttps://dev.mysql.com/get/D......
  • MySQL Delete 表数据后,磁盘空间并未释放,为什么?
    有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。问题如下:MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录,但是执行delete操作后发现磁盘空间并未释放,这是为什么?MySQL......
  • [附源码]计算机毕业设计高校教材管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着高校教育资源的不断扩充和教育体系的日益复杂化,高效的教材管理变得尤为重要。一个专业的高校教材管理系统能够实现教材信息的集中管理、库存状态实时监控、......
  • [附源码]计算机毕业设计大学生创新项目管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着高等教育的不断发展,大学生创新项目成为培养学生创新能力和实践能力的重要途径。有效的项目管理对于确保创新项目的顺利进行和高质量完成至关重要。然而,目前......
  • [附源码]计算机毕业设计疫情下高校学生离校系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍疫情的突发和持续影响使得高校学生离校管理面临前所未有的挑战。为了确保校园疫情防控的有效进行,同时保障学生的健康安全和合理流动,一个计算机毕业设计的疫情下......
  • C-04.MySQL逻辑架构
    C-04.逻辑架构1.逻辑架构剖析1.1服务器处理客户端请求首先MySQL是典型的C/S架构,即Client/Server架构,客户端使用的是mysql,服务器端程序使用的mysqld。不论客户端进程和服务器进程是采用那种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器......
  • Oracle与MySQL的差异和对比
    Oracle与MySQL的差异和对比:配套hands-on参考脚本。方便客户针对培训课件内容进行动手实践,加强理解。-----------------------------------主题:Oracle与MySQL的差异和对比--一、MySQL的基础特性--二、重要特性差异对比--三、性能对比和优化技巧--------------......
  • 15. sysbench和MySQL IO
    MySQL的IO使用情况 iotopiotop-umysql#-u表示监控哪个user的进程,所以前提是你的mysql服务是用mysql用户启动的该命令只能看到MySQL的线程ID(ThreadID) performance_schema.threadsroot@mysqldb13:42:[performance_schema]>selectname,type,PROCESSLIST_ID,......