关于 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 镜像文件地址:https://github.com/docker-library/mysql/tree/master/5.7

本人修改之后的 Docker 镜像文件地址:https://github.com/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 registry.cn-hangzhou.aliyuncs.com/sanchar/mysql-master:5.7.32.1
docker login --username=用户名 --password=密码 registry.cn-hangzhou.aliyuncs.com
docker push registry.cn-hangzhou.aliyuncs.com/sanchar/mysql-master:5.7.32.1

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

—> 构建 mysql-slave 镜像

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

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

k8s 部署 mysql-master 和 mysql-slave

先下载 yaml 文件,下载地址 https://github.com/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: registry.cn-hangzhou.aliyuncs.com/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 storage
kubectl create mysql-master.yaml -n storage

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

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

至此 mysql 主从库部署完成

基于 k8s 搭建 mysql 5.7 主从复制集群相关推荐

  1. K8S 搭建 nacos 1.4.1 集群(MySQL 8.0)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  2. 基于Docker搭建Percona XtraDB Cluster数据库集群

    本文实验的环境参数 阿里云ECS Centos7.5 Docker version 18.06.0-ce percona/percona-xtradb-cluster:5.7 Percona Xtra ...

  3. Docker基于Docker-cpmpose搭建Nginx实现SpringBoot+Nginx集群

    1,首先聊聊什么Nginx? Nginx 是一个高性能的HTTP和反向代理web服务器,因它的稳定性.丰富的功能集.简单的配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发 ...

  4. docker mysql日志写入本地_Docker Compose搭建MySQL主从复制集群

    转载自https://zhuanlan.zhihu.com/p/45193580 前言 随着应用业务数据不断的增大,应用的 响应速度不断下降,在检测过程中我们不难发现大多数的请求都是 查询操作.此时, ...

  5. Docker学习总结(43)——Docker Compose 搭建Mysql主从复制集群

    前言 随着应用业务数据不断的增大,应用的 响应速度不断下降,在检测过程中我们不难发现大多数的请求都是 查询操作.此时,我们可以将数据库扩展成 主从复制模式,将 读操作 和 写操作 分离开来,多台数据库 ...

  6. 基于keepalived搭建MySQL高可用集群

    MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和 ...

  7. CentOS服务器Mysql主从复制集群的搭建

    在配置Mysql数据库主从复制集群的时候要保证: 1.主从服务器操作系统版本和位数一致. 2.Mysql版本一致. 为了保证稳定性,最好服务器操作系统和Mysql数据库环境一致. CentOS服务器上 ...

  8. 搭建pxc集群时需要先安装mysql么_完美起航-高可用MySQL数据库之PXC集群

    高可用MySQL数据库之PXC集群 前言 在上一篇文章介绍了时下流行的几种数据库产品后(公众号发送"NewSQL"查看),有不少小伙伴表示对自动集群的数据库感兴趣,特别是Cockr ...

  9. 搭建基于Docker社区版的Kubernetes本地集群

    搭建基于Docker社区版的Kubernetes本地集群 原文:搭建基于Docker社区版的Kubernetes本地集群 Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于 ...

最新文章

  1. Fiddler抓包使用教程-断点调试
  2. javaweb项目中的过滤器的使用
  3. AX 2009 时间类型函数操作
  4. linux介绍及目录结构(一)
  5. 中国美丽乡村建设投融资及十四五发展规划分析报告2022-2028年版
  6. 超干货 | 硅谷产品大师 Marty Cagan 70 分钟演讲2万字中译
  7. UnitOfWork知多少
  8. Android之学习安卓每天成长笔记
  9. 欢乐纪中某B组赛【2019.1.27】
  10. mysql 集群怎么卸载节点_Greenplum移除节点
  11. maven项目pom.xml中parent标签的使用
  12. Python+ZeroMQ使用REQ/REP模式快速实现消息收发
  13. 面试题分享,麻麻再也不用担心我的面试了
  14. 数据结构课程设计1: 区块链
  15. brew彻底卸载mysql
  16. delphi备份Oracle,Oracle数据库自动备份工具(Delphi源码)
  17. java工作流_Java 实现简单工作流
  18. java读加密excel,JAVA读取加密的Excel文件
  19. 这个好用高效的读书笔记app软件一定要收藏
  20. win10锁屏c语言,win10系统锁屏状态下运行任意程序设置的操作方法

热门文章

  1. 基于scrum的估算
  2. 解决系统盘符被改的问题目:
  3. android:layout_marginRight代码实现View周围距离
  4. Liga妙谈 | 如何快速甄别、高效响应用户反馈?
  5. [行业调研]NAO机器人相关
  6. python破解淘宝登录
  7. 五年高考三年模拟YFX云分享软件库_​驾校考试一点通,科一满分答题技巧
  8. hp服务器330g6怎么安装系统,惠普(HP)246 G6 如何装win10系统
  9. 不要用既定的价值观来思考事物
  10. 字符串匹配之RabinKarp《算法很美》