一、准备好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
lower_case_table_names=1
二、mysql部署分析
/var/lib/mysql:这个路径是容器当中mysql存储数据文件的路径,我们使用pvc将其持久化
/etc/mysql/conf.d: 这是个目录,下面有一个my.cnf配置文件,我们使用configMap将其覆盖
MYSQL_ROOT_PASSWORD:这是个环境变量,设置默认的root账户密码
三、创建ConfigMap配置mysql的my.cnf文件
1、进入配置中心->配置->创建 名称:mysql-conf
2、开始配置ConfigMap 键:my.cnf 值:上面的配置文件内容
四、创建用来持久化mysql数据文件的pvc存储
1、进入存储管理->存储卷,点击创建 名称:mysql-pvc
2、开始创建存储卷
五、开始创建有状态的服务mysql
1、进入应用负载->工作负载->有状态副本集,点击创建
2、开始创建mysql服务
点击下一步
点击上面的添加容器镜像,选择镜像:选择DockerHub上的mysql:5.7的镜像
往下: 选择限制1核cpu 和 2000M 的内存以及端口的映射。
往下:
勾选 环境变量 :MYSQL_ROOT_PASSWORD 密码:root
勾选同步主机时区。
点击√打钩并且点击下一步:
选择添加存储卷,因为我们的存储卷已经创建好了,就是那个mysql-pvc, 挂载目录:/var/lib/mysql 选择读写。
上面的是我们持久化mysql的数据文件的,下面我们再挂载配置文件:
点击挂载配置文件:mysql-conf 只读 挂载 /etc/mysql/conf.d 路径 my.cnf
点击下一步:
点击创建:
可以点击进入查看:
可以发现已经创建成功
这里也可以查看mysql的日志和进入终端查看信息
六、通过内网访问创建好的mysql
1、首先通过终端进入mysql的内部,看一下我们的配置文件是否生效
由上可以发现,已经生效了
2、我们可以到应用负载->服务,查看我们刚创建的mysql自动生成的service服务
由上可以发现我们是无法外网访问的,只能内网容器间进行访问,因为类型是ClusterIP
可以发现在内网是可以连接上的 ,如果想要外网访问,我们需要配置service,当然一般在生产环境,内网访问就够了,因为在这个kubesphere上的容器间网络都是通的。
七、通过外网访问创建好的mysql
1、在应用负载->服务中再创建一个的mysql服务的service
创建成功,对外映射的端口是30805
2、下面通过外网的工具开始访问