KubeSphere学习---Mysql中间件安装部署实战
前言上一篇讲解了KubeSphere的多租户系统,并创建了众多用户,和众多项目,其中我们挑选:"dev-zhao"用户,和"his"项目来进行中间件的部署和学习。应用部署需要关注的要素因为这里我的KubeSphere是基于Kubernetes上部署的。那么我们在部署中间件的时候就和在Kubernetes上一样,比如:1、应用的部署方式:你是使用无状态工作负载?还是有状态负载?或者说是守护进程式的负
前言
上一篇讲解了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的相关操作就做完了,在以后部署其它中间件的时候都是一样的步骤。
更多推荐
所有评论(0)