基于K8S的StatefulSet部署MySQL集群
环境:
# 采用NFS存储卷的方式 持久化存储mysql数据目录
需求:
展示如何使用 StatefulSet 控制器运行一个有状态的应用程序。此例是多副本的 MySQL 数据库。 示例应用的拓扑结构有一个主服务器和多个副本,使用异步的基于行(Row-Based) 的数据复制。
- 搭建一个“主从复制”(Maser-Slave Replication)的 MySQL 集群
- 存在一个主节点【master】,有多个从节点【slave】
- 从节点可以水平拓展
- 所有的写操作,只能在主节点上执行
- 读操作可以在所有节点上执行
一、部署NFS服务器
#服务器安装nfs服务,提供nfs存储功能
1、安装nfs-utils
yum install nfs-utils (centos)
或者 apt-get install nfs-kernel-server (ubuntu)
2、启动服务
systemctl enable nfs-server
systemctl start nfs-server
3、创建共享目录完成共享配置
mkdir /home/nfs #创建共享目录
4、编辑共享配置
vim /etc/exports
#语法格式: 共享文件路径 客户机地址(权限) #这里的客户机地址可以是IP,网段,域名,也可以是任意*
/home/nfs *(rw,async,no_root_squash)
服务自检命令
exportfs -arv
5、重启服务
systemctl restart nfs-server
6、本机查看nfs 共享目录
#showmount -e 服务器IP地址 (如果提示命令不存在,则需要yum install showmount)
showmount -e 127.0.0.1
/home/nfs *
7、客户端模拟挂载[所有k8s的节点都需要安装客户端]
[root@master-1 ~]# yum install nfs-utils (centos)
或者 apt-get install nfs-common (ubuntu)
[root@master-1 ~]# mkdir /test
[root@master-1 ~]# mount -t nfs 172.16.201.209:/home/nfs /test
#取消挂载
[root@master-1 ~]# umount /test
二、配置PV 动态供给(NFS StorageClass),创建pvc
部署NFS实现自动创建PV插件: 一共设计到4个yaml 文件 ,官方的文档有详细的说明
https://github.com/kubernetes-incubator/external-storage
THE END