云原生KubeSphere部署Mysql

Posted 爱上口袋的天空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生KubeSphere部署Mysql相关的知识,希望对你有一定的参考价值。

一、简介

使用KubeShere部署应用架构图:

注意三点:

  1. 应用的部署方式
  2. 应用的数据挂载(数据、配置文件)
  3. 应用的可访问行性

二、部署mysql的分析以及准备

1、参考我们之前使用docker部署启动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

2、准备好mysql的配置文件

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

3、mysql部署分析

/var/lib/mysql:这个路径是容器当中mysql存储数据文件的路径,我们使用pvc将其持久化

/etc/mysql/conf.d: 这是个目录,下面有一个my.cnf配置文件,我们使用configMap将其覆盖

MYSQL_ROOT_PASSWORD:这是个环境变量,设置默认的root账户密码


三、创建ConfigMap配置mysql的my.cnf文件

 1、进入配置中心->配置->创建

 2、开始配置ConfigMap

 

ok,这样我们mysql对应的ConfigMap就创建好了 


四、创建用来持久化mysql数据文件的pvc存储

1、进入存储管理->存储卷,点击创建

 2、开始创建存储卷

 

如上,创建成功! 

五、开始创建有状态的服务mysql

1、进入应用负载->工作负载->有状态副本集,点击创建

2、开始创建mysql服务

 点击下一步。


点击上面的添加容器镜像,选择镜像:选择DockerHub上的mysql:5.7的镜像。

 

往下: 选择限制1核cpu 和 2000M 的内存以及端口的映射。 

往下:
勾选 环境变量 :MYSQL_ROOT_PASSWORD 密码:123456
勾选同步主机时区。

 点击√打钩并且点击下一步:

 

 选择添加存储卷,因为我们的存储卷已经创建好了,就是那个mysql-pvc, 挂载目录:/var/lib/mysql 选择读写

 上面的是我们持久化mysql的数据文件的,下面我们再挂载配置文件:

点击挂载配置文件:

 

 点击下一步:

点击创建:

 

 可以点击进入查看:

可以发现已经创建成功 

这里也可以查看mysql的日志和进入终端查看信息 


六、通过内网访问创建好的mysql

1、首先通过终端进入mysql的内部,看一下我们的配置文件是否生效

由上可以发现,已经生效了 

2、我们可以到应用负载->服务,查看我们刚创建的mysql自动生成的service服务

 由上可以发现我们是无法外网访问的,只能内网容器间进行访问,因为类型是ClusterIP

可以发现在内网是可以连接上的 ,如果想要外网访问,我们需要配置service,当然一般在生产环境,内网访问就够了,因为在这个kubesphere上的容器间网络都是通的。

七、通过外网访问创建好的mysql 

1、在应用负载->服务中再创建一个的mysql服务的service

 

 创建成功,对外映射的端口是30805

 2、下面通过外网的工具开始访问,

以上是关于云原生KubeSphere部署Mysql的主要内容,如果未能解决你的问题,请参考以下文章

[云原生专题-53]:Kubesphere云治理-操作-通过Kubesphere应用商店一键部署微服务应用-消息中间件RabbitMQ的安装与部署

云原生KubeSphere部署Redis

[云原生专题-49]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 基本过程与步骤

[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

[云原生专题-55]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 微服务注册中间件Nacos的部署

[云原生专题-52]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 搜索中间件Elasticsearch微服务部署过程