愿你,忠于自己,活得像自己。清单:NameVersionCentOS7
Kubernetes1.9.0
Docker17.09.1-ce
MySQL5.7
前言
令我始料不及的出差活动中,开始接触Kubernetes并被要求搭建基于此的MySQL主从集群,由于笔者在Linux、Kubernetes等方面都是小白,故此展开了填坑活动,写本文目的只是为了让其他程序猿少踩坑,下面简单介绍下MySQL主从集群。
我们用MySQL集群的分布式部署来实现MySQL主从模式,在MySQL集群中,Master节点主要负责数据的分发和slave节点的管理。因此Master节点主要负责数据的写入和分发(包括insert、update、delete)。而slave节点主要负责数据的读取(包括select)。基本的master和slave的分工作业,如下图所示。
MySQL集群架构
MySQL集群在主从模式下实现一台服务充当主服务器,其他一台或者多台服务器充当从服务器。下面我们开始搭建。
一、安装MySQL经深入研究后发现,docker镜像不用自行安装MySQL,如需安装MySQL,请转我的另一篇文章:https://www.jianshu.com/p/a6c5ec995660
二、构建Docker镜像构建镜像需要以下操作,先简单说明后面步骤将此部分内容写入Dockerfile中
master配置文件/etc/my.cnf中[mysqld]下添加配置log-bin=mysql-bin
server-id=1重启MySQL
# service mysqld restart
创建同步账号# mysql -u root -p# create user 'sync'@'%' identified by 'MySQL@lipuan.2018';赋予同步账号远程权限
# grant replication slave on *.* to 'sync'@'%' identified by 'MySQL@lipuan.2018';
slave配置文件/etc/my.cnf中[mysqld]下添加配置log-bin=mysql-bin
server-id=2重启MySQL
# service mysqld restart
配置主机IP# mysql -u root -p# change master to master_host='x.x.x.x',master_user='sync',master_password=