系统环境:
Mysql 版本:8.0.19
Kubernetes 版本:1.17.4
操作系统版本:CentOS 7.8
一、简介
Mysql 是我们常用的关系型数据库,在项目开发、测试、部署到生成环境时,经常需要部署一套 Mysql 进行数据存储。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Mysql 数据库,当然,部署的是单节点模式,并非用于生产环境的主从或集群模式。单节点的 Mysql 部署简单,且配置存活探针,能保证快速检测 Mysql 是否可用,当不可用时快速进行重启。
二、Mysql 参数配置
在使用 Kubernetes 部署应用后,一般会习惯与将应用的配置文件外置,用 ConfigMap 存储,然后挂载进入镜像内部。这样,只要修改 ConfigMap 里面的配置,再重启应用就能很方便就能够使应用重新加载新的配置,很方便。
创建 ConfigMap 存储 Mysql 配置文件
创建 Kubernetes 的 ConfigMap 资源,用于存储 Mysql 的配置文件 my.cnf 内容:
mysql-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
labels:
app: mysql
data:
my.cnf: |-
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
max_connections = 2000
secure_file_priv=/var/lib/mysql
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
通过 Kubectl 工具部署 ConfigMap
通过 kubectl 工具部署 Kubernetes ConfigMap 资源,命令如下:
-n:指定部署应用的 Namespace 命名空间。
$ kubectl create -f mysql-config.yaml -n mydlqcloud
三、Mysql 数据存储