300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 基于 k8s 搭建 mysql 5.7 主从复制集群

基于 k8s 搭建 mysql 5.7 主从复制集群

时间:2022-06-04 10:33:44

相关推荐

基于 k8s 搭建 mysql 5.7 主从复制集群

关于 k8s 集群环境的搭建可以参考我的另一篇博客

k8s 集群之使用 kubeadm 在 Centos8 上部署 kubernetes 1.20

关于 nfs 网络存储如何搭建和使用可以参考我的另一篇博客

k8s 集群之使用 nfs 网络存储挂载外部目录和文件

本文是基于已有 k8s 环境下,介绍在 k8s 环境中部署 mysql 主从集群,集群的数据持久化采用 nfs 网络存储方式。

搭建 mysql 主从复制集群主要分为两步,首先构建 mysql 主库和从库的镜像,然后创建 mysql master主库 和 slave从库的yaml文件,使用 k8s 部署 mysql 主从库。

mysql 版本:5.7.32

构建 mysql 主从库的镜像

mysql 官方 Docker 镜像文件地址:/docker-library/mysql/tree/master/5.7

本人修改之后的 Docker 镜像文件地址:/sanchar01/mysql/tree/master/5.7.32

(区分 master 和 slave,后续使用的都是修改过的的镜像文件,有兴趣可以对比一下官方镜像文件)

—> 构建 mysql-master 镜像

将修改之后的 Docker 镜像文件下载到本地,cd 进入 master 文件夹,执行如下构建命令

docker build -t mysql/mysql-master:1.0 .docker tag mysql/mysql-master:1.0 -/sanchar/mysql-master:5.7.32.1docker login --username=用户名 --password=密码 -docker push -/sanchar/mysql-master:5.7.32.1

至此 mysql-master 镜像已经推送到远程仓库,镜像地址直接使用 -/sanchar/mysql-master:5.7.32.1 (公开的镜像,可以直接使用)

—> 构建 mysql-slave 镜像

docker build -t mysql/mysql-slave:1.0 .docker tag mysql/mysql-slave:1.0 -/sanchar/mysql-slave:5.7.32.1docker login --username=用户名 --password=密码 -docker push -/sanchar/mysql-slave:5.7.32.1

至此 mysql-slave 镜像已经推送到远程仓库,镜像地址直接使用 -/sanchar/mysql-slave:5.7.32.1 (公开的镜像,可以直接使用)

k8s 部署 mysql-master 和 mysql-slave

先下载 yaml 文件,下载地址 /sanchar01/mysql/tree/master/k8s_yaml

修改 mysql-master-pv.yaml、mysql-slave-pv.yaml 文件,如下替换对应的 nfs 服务器地址和 nfs 存储目录

nfs: path: /nfs/data/mysql/master # 注意该路径需要 nfs 服务器上存在server: 192.168.1.28

修改 mysql-master.yaml、mysql-slave.yaml 文件,如下可替换所使用的镜像,初始化 root 账号的密码和对外端口等

spec:containers:- name: mysql-masterimage: -/sanchar/mysql-master:5.7.32.1······env:- name: MYSQL_ROOT_PASSWORDvalue: "root"- name: MYSQL_REPLICATION_USERvalue: "repl"- name: MYSQL_REPLICATION_PASSWORDvalue: "repl"······spec:type: NodePortports:- port: 3306targetPort: 3306name: httpnodePort: 30006 #外部通过该端口访问

修改完之后,先部署 mysql-master

kubectl create mysql-master-pv.yaml -n storagekubectl create mysql-master.yaml -n storage

mysql-master 启动完成之后,部署 mysql-slave

kubectl create mysql-slave-pv.yaml -n storagekubectl create mysql-slave.yaml -n storage

至此 mysql 主从库部署完成

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。