作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊


目录

​前言:​

​第1步:前置条件​

​1.1 在Kubesphere选择项目空间(名字空间)​

​1.2 在dockerhub找到MySQL部署的所需要配置参数​

​1.3 MySql server部署的规划​

​1.4 预先在微服务外部创建PVC持久化卷​

​1.5 预先在微服务外部创建MySQL的配置文件​

​第2步:部署mysql 微服务​

​2.1 安装容器镜像​

​2.2 挂在外部持久化卷​

​2.3 挂载外部配置文件​

​2.4 检查镜像安装情况​

​步骤3:为mysql创建Service服务对象​

​3.1 创建clusterIP service对象(只能集群内部访问)​

​3.2 创建NodePort service对象(可以通过公网访问MySQL服务)​


前言:

MySQL是微服务业务应用程序的中间件,其本身也是微服务,可以单独部署,遵循微服务部署基本过程。

第1步:前置条件

1.1 在Kubesphere选择项目空间(名字空间)

1.2 在dockerhub找到MySQL部署的所需要配置参数

(1)docker hub主页

​Docker Hub​

(2)search “mysql”

​https://hub.docker.com/_/mysql​

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_docker

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 暴露配置文件
$ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

mysql并非是任意访问的,需要用户名+密码认证。

因此,mysql的启动需要通过环境变量设置访问mysql的密码。

1.3 MySql server部署的规划

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_Kubesphere_02

  • PVC用于MySql在容器外部使用(写)持久化MySql的业务数据
  • ConfigMap用于MySql在容器外部的使用(读)配置文件

1.4 预先在微服务外部创建PVC持久化卷

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_docker_03

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_微服务_04

1.5 预先在微服务外部创建MySQL的配置文件

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_Kubesphere_05

 MySQL有大量的配置信息,我们可以选择几个实验一下:

[client]

port = 3306
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]

第2步:部署mysql 微服务

2.1 安装容器镜像

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_06

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_微服务_07

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_08

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_docker_09

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_10

2.2 挂在外部持久化卷

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_mysql_11

2.3 挂载外部配置文件

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_12

2.4 检查镜像安装情况

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_微服务_13

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_微服务_14

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_mysql_15

步骤3:为mysql创建Service服务对象

3.1 创建clusterIP service对象(只能集群内部访问)

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_docker_16

进入Service, 通过服务名访问MySQL服务: 

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_Kubesphere_17

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_Kubesphere_18

mysql -u root -h his-mysql-glgf.his -p

123456

3.2 创建NodePort service对象(可以通过公网访问MySQL服务)

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_19

 [云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_云原生_20

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_mysql_21

在集群外(公网主机),通过mysql的客户端访问MySQL服务

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_微服务_22

  • 提前安装客户端

​MySQL :: Download MySQL Workbench​

  • 访问密码:123456  (安装是通过环境变量设置的密码)

作者主页(​​文火冰糖的硅基工坊​​​):​​文火冰糖(王文兵)的博客_文火冰糖的硅基工坊