【云原生】rancher2.6部署MySQL—2023.03

文章目录

    • 概要
    • 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节点为例,如下图。
【云原生】rancher2.6部署MySQL—2023.03_第1张图片

1.1 安装nfs

  1. 首先在nfs服务器上安装nfs服务
# 安装nfs
yum install -y nfs-utils
# 设置挂载路径
vim /etc/exports

将如下内容写进/etc/exports

/data/nfs *(rw,no_root_squash)

在这里插入图片描述

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

在这里插入图片描述

1.2 创建挂载路径

我准备把数据挂载到/nfs/mysql中,因此创建挂载路径

mkdir /nfs
cd /nfs
mkdir mysql

1.3 启动NFS服务

启动并查看是否已经运行

systemctl start nfs
ps -ef | grep nfs

【云原生】rancher2.6部署MySQL—2023.03_第2张图片

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

  1. 选择“PersistentVolumes”,点击右上角的“创建”,进入设置页面
    【云原生】rancher2.6部署MySQL—2023.03_第3张图片
  2. 配置PV
    注意:PV的存储空间一定要大于PVC
    【云原生】rancher2.6部署MySQL—2023.03_第4张图片
    【云原生】rancher2.6部署MySQL—2023.03_第5张图片
    【云原生】rancher2.6部署MySQL—2023.03_第6张图片

3.2 创建PVC

  1. 选择“PersistentVolumeClaims”,点击右上角的“创建”,进入设置页面
    【云原生】rancher2.6部署MySQL—2023.03_第7张图片
  2. 配置PVC
    【云原生】rancher2.6部署MySQL—2023.03_第8张图片
    【云原生】rancher2.6部署MySQL—2023.03_第9张图片
    【云原生】rancher2.6部署MySQL—2023.03_第10张图片
    创建完成后自动绑定到PV上。

3.3 创建服务发现

部署MySQL之前一定一定要先添加服务,否则就会报错

  1. 选择“服务发现”里的“Services”,创建,选择Helmless
    【云原生】rancher2.6部署MySQL—2023.03_第11张图片
    【云原生】rancher2.6部署MySQL—2023.03_第12张图片
  2. 修改配置
    【云原生】rancher2.6部署MySQL—2023.03_第13张图片
    选择器一定要添加
    【云原生】rancher2.6部署MySQL—2023.03_第14张图片
    【云原生】rancher2.6部署MySQL—2023.03_第15张图片

3.4 部署MySQL服务

  1. 选择“StatefulSets”,点击右上角创建,进入配置页面
    【云原生】rancher2.6部署MySQL—2023.03_第16张图片
  2. 配置MySQL
    【云原生】rancher2.6部署MySQL—2023.03_第17张图片

【云原生】rancher2.6部署MySQL—2023.03_第18张图片
【云原生】rancher2.6部署MySQL—2023.03_第19张图片
【云原生】rancher2.6部署MySQL—2023.03_第20张图片

【云原生】rancher2.6部署MySQL—2023.03_第21张图片
3. 创建成功
【云原生】rancher2.6部署MySQL—2023.03_第22张图片

4. 测试

测试方式有两种,一种是用电脑上可以连接mysql的工具连接,看是否好用,由于我的Navicat 到期了,这里就采用另一种方式——再服务器上安装mysql客户端,连接端口看是否好用。

  1. 安装mysql客户端,安装方式见这篇文章(此处有超链接)

  2. 进入MySQL

mysql -u root -p密码 -h 192.168.2.22 --port=30006

【云原生】rancher2.6部署MySQL—2023.03_第23张图片

  1. 重启pod,看新增的test是否还在
    在rancher中将StatefulSets里的mysql副本数修改为0,保存退出后,在修改为1,保存退出,就可以视为pod重启。
    在客户端查看test是否存在。可以发现,重启后仍然存在,也就做到了数据持久化存储。
    【云原生】rancher2.6部署MySQL—2023.03_第24张图片

你可能感兴趣的:(k8s,云原生,mysql,docker,容器,kubernetes)