本文以单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 |
mysql属于数据库,所以要做数据存储,避免数据丢失。想要存储数据就要把mysql的数据挂载导nfs服务器上进行持久化存储,防止重启pod,数据丢失。
首先选择一台服务器作为nfs服务器,此服务器不是集群内部的,而隶属于集群外的。以单master节点为例,如下图。
# 安装nfs
yum install -y nfs-utils
# 设置挂载路径
vim /etc/exports
将如下内容写进/etc/exports
中
/data/nfs *(rw,no_root_squash)
exportfs -r
我准备把数据挂载到/nfs/mysql
中,因此创建挂载路径
mkdir /nfs
cd /nfs
mkdir mysql
启动并查看是否已经运行
systemctl start nfs
ps -ef | grep nfs
所有node节点都要安装
yum install -y nfs-utils
在rancher上部署MySQL,必须要先创建PVC和PV,PVC和PV创建之后会自动绑定,然后部署MySQL才会成功。
创建PVC和PV的顺序是固定的,必须先创建PV,再创建PVC;因为PVC是绑定在PV上的。
删除PVC和PV的顺序也是固定的,必须先删除PVC,再删除PV;如果不删除PVC直接去删除PV,是无法删除的。
部署MySQL之前一定一定要先添加服务,否则就会报错
测试方式有两种,一种是用电脑上可以连接mysql的工具连接,看是否好用,由于我的Navicat 到期了,这里就采用另一种方式——再服务器上安装mysql客户端,连接端口看是否好用。
安装mysql客户端,安装方式见这篇文章(此处有超链接)
进入MySQL
mysql -u root -p密码 -h 192.168.2.22 --port=30006