MySQL没有什么特殊的,这里记录一下部署过程(本文示例中安装的版本为5.7.29)。步骤大致如下:
拉取docker镜像 -> 标记并推送至私有harbor -> 创建有状态负载 -> 创建服务
一、拉取镜像,并推送至私有harbor
# 拉取镜像
docker pull mysql:5.7.29
# tag(注意把“yourHarbor”替换成你自己的harbor空间地址)
docker tag mysql:5.7.29 yourHarbor/sn-kjy/mysql:5.7.29
# push到私有harbor(注意把“yourHarbor”替换成你自己的harbor空间地址)
docker push yourHarbor/sn-kjy/mysql:5.7.29
二、部署服务
1. 配置字典
前面的文章中,已经有了比较详细的操作截图记录,这里只记录数据,对具体的每一步操作截图不再赘述。
# 字典名称
mysql-cnf# key
my.cnf# value
[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# 最大连接数设置为5000,可以根据自身情况进行设置,MySQL默认的连接数比较小
max_connections = 5000
sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
2. 创建有状态副本集
2.1. 选择有状态副本集
2.2. 输入名称:mysql,点下一步
2.3.容器组设置
2.3.1 输入镜像地址,注意:这里用私有harbor上的地址,会显示“没有找到镜像”,不影响,可以继续往下操作
2.3.2 端口设置:
2.3.2.1 协议选择TCP,名称:tcp-3306,容器端口:3306,服务端口:3306
2.3.2.1 协议选择TCP,名称:tcp-33060,容器端口:33060,服务端口:33060
2.3.3 勾选“环境变量”,键:MYSQL_ROOT_PASSWORD,值:填写想设置的mysql密码
2.3.4 勾选“同步主机时区”,点确定(对号)及下一步
2.4. 存储设置
2.4.1 添加持久卷
注意:因为截图的是测试环境,存储类只有local-path,生产环境是需要选择csi-nfs-sc之类的存储方式的。
2.4.1.1 PVC名称前缀:mysql-pvc
2.4.1.2 存出类选择csi-nfs-sc
2.4.1.3 卷容量:1024G(根据实际需要)
2.4.1.4 挂载路径:第一个下拉框选择“读写”,挂载路径:/var/lib/mysql
2.4.1.5 点击确定
2.4.2. 挂载配置字典或保密字典
2.4.2.1 选择“配置字典”
2.4.2.2 选在上面配置好的字典:mysql-cnf
2.4.2.3 下拉框选择“只读”,挂载路径:/etc/mysql/conf.d
3. 创建服务
3.1. 点击创建,选择“指定工作负载”
3.2. 输入名称:mysql-svc-nodeport,点下一步
3.3. 服务设置
3.3.1 点击“指定工作负载”,选择mysql
3.3.2 端口:协议选择“HTTP”,容器端口:3306,服务端口:3306,点击下一步
3.4. 勾选“外部访问”,访问模式下拉选择“NodePort”,点击创建
3.5. 点击在服务的“...”,选择“编辑YAML”,把nodePort修改为需要的端口,用于外部访问。