Mysql部署
Mysql部署
目标:部署单节点mysql服务,数据持久化存储在服务器。如需部署从库,可以部署多个节点并配置主从同步。
步骤1:新建存储卷
存储卷用于持久化保存mysql数据,进入存储管理存储卷:
点击创建,输入存储卷名称,名称用于mysql容器挂载使用,项目内唯一。另外别名、描述信息用于补充说明:
点击下一步,根据实际需求设置存储卷容量,其他选项默认即可:
点击下一步进入高级设置,这里没有特殊需求默认即可:
点击创建,即可完成存储卷创建,这里是未挂载状态,表示还没有被容器使用:
点击名称进入可以查看详细配置信息,其中监控数据在容器挂载后显示:
步骤2:新建mysql配置信息
作为环境变量传入mysql容器内用于mysql服务的启动、配置、初始化等:
- 进入配置中心配置页面,这里可以配置用于项目内部调用的基于键值对形式的配置项:
- 点击创建,输入名称(容器基于名称调用)、别名、描述信息:
- 点击下一步,进入配置设置,可以开始添加配置数据:
- 点击添加数据,添加键值对配置数据,然后点击右下角对勾完成配置:
这里mysql默认只需要这一个参数即可,用于初始化root账号密码:
MYSQL_ROOT_PASSWORD:
建立的一个配置项:
- 点击创建,完成配置创建:
- 点击配置名称进入查看配置详细信息:
步骤3:部署mysql容器服务
- 进入应用负载服务,开始创建mysql服务:
- 点击创建,服务类型选择有状态服务(即需要数据持久化的服务),输入名称、别名、描述:
- 点击下一步,进入容器镜像配置:
容器组副本数量选择1个,点击添加容器镜像进入容器设置:
在镜像内容中,使用公共镜像,选择DockerHub,输入mysql:5.7,点击下方区域稍等片刻会出现镜像详细信息,点击使用默认端口(有时可能不会出现镜像详细信息,不影响使用,先忽略点击端口这一步),然后在高级设置中输入容器名称:
下滑继续配置,这里设置改容器资源限制和资源预留,这里CPU单位是核数,内存单位是MB:
资源限制:容器可以使用的最大资源量;
资源预留:初始分配给容器的最小资源量,不管容器是否使用都会预先分配;
这里没有特殊需求默认即可,即不预留也不限制。
然后设置容器端口,如果上一步点击了使用默认端口,这里不需要修改,如果没有使用默认,可以手动填入,具体说明:
协议:mysql使用TCP协议;
名称:端口名称,一般格式是协议-端口;
容器端口:容器本身端口,即mysql运行的端口;
服务端口:容器通过服务方式提供k8s集群内部访问的端口。
继续向下滑动,还需要配置以下选项:
- 镜像拉取策略:默认选择优先使用本地镜像即可,本地如果没有镜像会去仓库拉取;
- 健康检查器:检查部署后的服务的健康状态,生产环境需要,默认可以不进行配置取消选择;
启动命令:这里添加启动命令,会覆盖容器镜像制作时的命令,一般不需要;
环境变量:容器启动时需要传入的环境变量,mysql这里需要一个变量root初始密码,这里选择引用配置文件(配置文件已经在上面步骤中建好),点击:
点击选择已准备好的配置文件的名称:
然后右侧选择具体的配置项即可自动补全名称:
容器Security Context:用于限制容器行为保护宿主机系统安全,这里没有特殊需求默认不配置即可。个别情况比如容器内服务需要获取CPU-ID、主板ID等信息时需要设置;
同步主机时区:设置容器内时区和服务器时区一致,一般容器镜像的操作系统都是用UTC时区,这里需要设置选择以使容器时间使用北京时间。
设置完成后点击右下角对勾完成容器镜像设置:
可以看到如下内容:
剩余配置项默认即可:
- 点击下一步,进入挂载存储配置,上面已经添加了存储卷,所以直接点击下方添加:
选择建好的已有存储卷,访问方式选择读写,右侧输入容器内mysql的数据目录/var/lib/mysql,点击右下角对勾保存即可:
可以看到已经挂载的存储卷,其中第一个时同步主机时区使用,第二个是刚配置的数据存储:
- 点击下一步,进入高级设置,这里不需要配置默认即可,点击创建,刷新页面可以看到:
- 点击服务名称可以看到详细信息,访问方式有两种:
方式1:虚拟IP:服务端口,虚拟IP和端口如下图。
方式2:域名:服务端口,域名组成规则:服务名称.项目名称.svc.cluster.local,例如:mysql.middleware.svc.cluster.local
- 外网访问配置:mysql服务一般不建议配置外网,如果有需要可以如下配置:
服务详细信息页面,更多操作中选择编辑外网访问:
访问方式中选择NodePort方式,确定保存即可:
可以看到增加了节点端口,使用服务器外网IP加端口即可,使用集群内任何一台服务器的外网IP都可以: