KubeSphere学习---Mysql中间件安装部署实战

在这里插入图片描述

前言

上一篇讲解了KubeSphere的多租户系统,并创建了众多用户,和众多项目,其中我们挑选:"dev-zhao"用户,和"his"项目来进行中间件的部署和学习。

应用部署需要关注的要素

因为这里我的KubeSphere是基于Kubernetes上部署的。那么我们在部署中间件的时候就和在Kubernetes上一样,比如:
1、应用的部署方式:你是使用无状态工作负载?还是有状态负载?或者说是守护进程式的负载?使
无状态负载:适用于部署个Nginx,Httpd等不需要后端数存储的。
有状态负载:用于部署Mysql,Redis,需要适合连接后面的存储的,比如一个mysql Pod宕机了,这时它的后面存储的数据还在,然后我们在传创建个Mysql它可以自动连接后面的数据存储。
守护进程集:适用于日志采集工具,需要部署在每个节点上Pod,然后众多个日志采集Pod合并数据,交给后端的xxx平台。

2、应用的数据挂载:我们知道在Kubernetes上存储卷是必要的,因此我们可以通过KubeSphere来实现

3、应用的可访问性:在部署完工作负载之后,我们需要为众多Pod创建Service来实现用户的访问,或者集群内部组件的访问,再或者,如果你想为整个Kubernetes搞个流量总入口,你也可以创建Ingress

以上三条就是在KubeSphere上部署中间件的三大要素,其实和Kubernetes在部署是一样的,而且在KubeSphere可以更方便的进行操作。

以上关系如下图:
在这里插入图片描述

图解KubeSphere部署组件的要素

首先用dev-zhao(你可以随便创建个账号),进入his项目:
在这里插入图片描述

部署MySQL

在部署之前,我们先来想一下:部署Mysql,需要符合以上三要素那几个?
(1)、首先Mysql就是存放数据的,我们需要数据挂在吧
(2)、在这Mysql有配置文件,我们可以适用ConfigMap进行注入配置信息,单独创建个Pod然后把Mysql的配置信息,注入进去。
(3)、我们需要负载吧,由于Mysql需要存储数据的地方,因此我们以有状态工作负载来实现。

docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 

在这里插入图片描述
1、实现ConfigMap,进入his项目,在左测列表中,找到"配置中心------>配置",然后点击"创建"。
在这里插入图片描述
在这里插入图片描述

这样ConfigMap就配置好了。

2、创建PVC,用户存储Mysql的数据
进入his项目,在左测列表中,找到"存储管理------>存储卷",然后点击"创建"。
在这里插入图片描述
在这里插入图片描述
高级选项不用设置
这样Mysql的持久存储PVC就创建好了。

3、创建有状态负载
进入his项目,在左测列表中,找到"应用负载------>工作负载------>有状态副本集",然后点击"创建"。
在这里插入图片描述
下面的配置比较重要:
在这里插入图片描述

在这里插入图片描述
设置将Pod改在刚才才能关键的PVC卷,并关联刚才创建的ConfigMap
在这里插入图片描述

之后点击"创建"即可:
在这里插入图片描述

检测效果

1、进入到Mysql 的 Pod内部登陆Mysql
-h是使用的有Service自带DNS解析的
在这里插入图片描述

2、进入到此容器的终端,查看my.cnf文件
在这里插入图片描述

在这里插入图片描述
之后如果想要修改,直接找到"编辑"选项进行修改即可,并且他会自动将修改后的配置信息同步上去。
当然,我们也可以在Kubernetes平台上进行查看

[root@k8s-master ~]# kubectl get pods -A | grep mysql
his                            his-mysql-0                                                       1/1     Running     0          9m30s

现在呢,Mysql的Pod是创建好了,但是在集群外部我们还不能访问此Mysql服务,因此下面我们要设置Mysql的网络—Service。

部署Mysql负载均衡网络

在"服务"中进行创建
1、我们先来创建个集群内部Service
在这里插入图片描述
在这里插入图片描述
这个时候DNS域名就变成我们自己指定的了。

2、来创建个集群外部访问的Service
在这里插入图片描述

总结

这样关于Mysql的相关操作就做完了,在以后部署其它中间件的时候都是一样的步骤。

猜你喜欢

转载自blog.csdn.net/m0_57776598/article/details/124063782