网站开发怎么做微信看视频打赏网站建设
文章目录
- 概要
 - 1. 准备NFS服务器
 - 1.1 安装nfs
 - 1.2 创建挂载路径
 - 1.3 启动NFS服务
 
- 2. 所有node节点上安装NFS服务
 - 3. rancher上部署MySQL
 - 3.1 创建PV
 - 3.2 创建PVC
 - 3.3 创建服务发现
 - 3.4 部署MySQL服务
 
- 4. 测试
 
概要
本文以单master节点为例,部署mysql,多master(高可用)步骤类似。
 准备了1台rancher控制集群,1个master节点,2个node节点,和一个进行存储数据nfs服务器。
| 节点 | IP | 必要装备 | 
|---|---|---|
| k8s-rancher | 192.168.2.21 | docker\rancher\kubectl | 
| k8s-master1 | 192.168.2.22 | docker | 
| k8s-node1 | 192.168.2.23 | docker\nfs | 
| k8s-node2 | 192.168.2.24 | docker\nfs | 
| k8s-nfs | 192.168.2.35 | nfs | 
1. 准备NFS服务器
mysql属于数据库,所以要做数据存储,避免数据丢失。想要存储数据就要把mysql的数据挂载导nfs服务器上进行持久化存储,防止重启pod,数据丢失。
首先选择一台服务器作为nfs服务器,此服务器不是集群内部的,而隶属于集群外的。以单master节点为例,如下图。
 
1.1 安装nfs
- 首先在nfs服务器上安装nfs服务
 
# 安装nfs
yum install -y nfs-utils
# 设置挂载路径
vim /etc/exports
 
将如下内容写进/etc/exports中
/data/nfs *(rw,no_root_squash)
 

- 检查是否出错
执行如下命令不报错即可,报错的化就说明文件内容有问题,需要修改。 
exportfs -r 
 

1.2 创建挂载路径
我准备把数据挂载到/nfs/mysql中,因此创建挂载路径
mkdir /nfs
cd /nfs
mkdir mysql
 
1.3 启动NFS服务
启动并查看是否已经运行
systemctl start nfs
ps -ef | grep nfs
 

2. 所有node节点上安装NFS服务
所有node节点都要安装
yum install -y nfs-utils
 
3. rancher上部署MySQL
在rancher上部署MySQL,必须要先创建PVC和PV,PVC和PV创建之后会自动绑定,然后部署MySQL才会成功。
 创建PVC和PV的顺序是固定的,必须先创建PV,再创建PVC;因为PVC是绑定在PV上的。
 删除PVC和PV的顺序也是固定的,必须先删除PVC,再删除PV;如果不删除PVC直接去删除PV,是无法删除的。
3.1 创建PV
- 选择“PersistentVolumes”,点击右上角的“创建”,进入设置页面

 - 配置PV
注意:PV的存储空间一定要大于PVC



 
3.2 创建PVC
- 选择“PersistentVolumeClaims”,点击右上角的“创建”,进入设置页面

 - 配置PVC



创建完成后自动绑定到PV上。 
3.3 创建服务发现
部署MySQL之前一定一定要先添加服务,否则就会报错
- 选择“服务发现”里的“Services”,创建,选择Helmless


 - 修改配置

选择器一定要添加


 
3.4 部署MySQL服务
- 选择“StatefulSets”,点击右上角创建,进入配置页面

 - 配置MySQL

 

 
 

 3. 创建成功
 
4. 测试
测试方式有两种,一种是用电脑上可以连接mysql的工具连接,看是否好用,由于我的Navicat 到期了,这里就采用另一种方式——再服务器上安装mysql客户端,连接端口看是否好用。
-  
安装mysql客户端,安装方式见这篇文章(此处有超链接)
 -  
进入MySQL
 
mysql -u root -p密码 -h 192.168.2.22 --port=30006
 

- 重启pod,看新增的test是否还在
在rancher中将StatefulSets里的mysql副本数修改为0,保存退出后,在修改为1,保存退出,就可以视为pod重启。
在客户端查看test是否存在。可以发现,重启后仍然存在,也就做到了数据持久化存储。

 
