跳至主要內容

Mysql部署


Mysql部署

目标:部署单节点mysql服务,数据持久化存储在服务器。如需部署从库,可以部署多个节点并配置主从同步。

步骤1:新建存储卷

存储卷用于持久化保存mysql数据,进入存储管理存储卷:

点击创建,输入存储卷名称,名称用于mysql容器挂载使用,项目内唯一。另外别名、描述信息用于补充说明:

点击下一步,根据实际需求设置存储卷容量,其他选项默认即可:

点击下一步进入高级设置,这里没有特殊需求默认即可:

点击创建,即可完成存储卷创建,这里是未挂载状态,表示还没有被容器使用:

点击名称进入可以查看详细配置信息,其中监控数据在容器挂载后显示:

步骤2:新建mysql配置信息

作为环境变量传入mysql容器内用于mysql服务的启动、配置、初始化等:

  1. 进入配置中心配置页面,这里可以配置用于项目内部调用的基于键值对形式的配置项:

  1. 点击创建,输入名称(容器基于名称调用)、别名、描述信息:

  1. 点击下一步,进入配置设置,可以开始添加配置数据:

  1. 点击添加数据,添加键值对配置数据,然后点击右下角对勾完成配置:

这里mysql默认只需要这一个参数即可,用于初始化root账号密码:

MYSQL_ROOT_PASSWORD:

建立的一个配置项:

  1. 点击创建,完成配置创建:

  1. 点击配置名称进入查看配置详细信息:

步骤3:部署mysql容器服务

  1. 进入应用负载服务,开始创建mysql服务:

  1. 点击创建,服务类型选择有状态服务(即需要数据持久化的服务),输入名称、别名、描述:

  1. 点击下一步,进入容器镜像配置:

容器组副本数量选择1个,点击添加容器镜像进入容器设置:

在镜像内容中,使用公共镜像,选择DockerHub,输入mysql:5.7,点击下方区域稍等片刻会出现镜像详细信息,点击使用默认端口(有时可能不会出现镜像详细信息,不影响使用,先忽略点击端口这一步),然后在高级设置中输入容器名称:

下滑继续配置,这里设置改容器资源限制和资源预留,这里CPU单位是核数,内存单位是MB:

资源限制:容器可以使用的最大资源量;

资源预留:初始分配给容器的最小资源量,不管容器是否使用都会预先分配;

这里没有特殊需求默认即可,即不预留也不限制。

然后设置容器端口,如果上一步点击了使用默认端口,这里不需要修改,如果没有使用默认,可以手动填入,具体说明:

协议:mysql使用TCP协议;

名称:端口名称,一般格式是协议-端口;

容器端口:容器本身端口,即mysql运行的端口;

服务端口:容器通过服务方式提供k8s集群内部访问的端口。

继续向下滑动,还需要配置以下选项:

  • 镜像拉取策略:默认选择优先使用本地镜像即可,本地如果没有镜像会去仓库拉取;

  • 健康检查器:检查部署后的服务的健康状态,生产环境需要,默认可以不进行配置取消选择;

  • 启动命令:这里添加启动命令,会覆盖容器镜像制作时的命令,一般不需要;

  • 环境变量:容器启动时需要传入的环境变量,mysql这里需要一个变量root初始密码,这里选择引用配置文件(配置文件已经在上面步骤中建好),点击:

点击选择已准备好的配置文件的名称:

然后右侧选择具体的配置项即可自动补全名称:

  • 容器Security Context:用于限制容器行为保护宿主机系统安全,这里没有特殊需求默认不配置即可。个别情况比如容器内服务需要获取CPU-ID、主板ID等信息时需要设置;

  • 同步主机时区:设置容器内时区和服务器时区一致,一般容器镜像的操作系统都是用UTC时区,这里需要设置选择以使容器时间使用北京时间。

设置完成后点击右下角对勾完成容器镜像设置:

可以看到如下内容:

剩余配置项默认即可:

  1. 点击下一步,进入挂载存储配置,上面已经添加了存储卷,所以直接点击下方添加:

选择建好的已有存储卷,访问方式选择读写,右侧输入容器内mysql的数据目录/var/lib/mysql,点击右下角对勾保存即可:

可以看到已经挂载的存储卷,其中第一个时同步主机时区使用,第二个是刚配置的数据存储:

  1. 点击下一步,进入高级设置,这里不需要配置默认即可,点击创建,刷新页面可以看到:

  1. 点击服务名称可以看到详细信息,访问方式有两种:

方式1:虚拟IP:服务端口,虚拟IP和端口如下图。

方式2:域名:服务端口,域名组成规则:服务名称.项目名称.svc.cluster.local,例如:mysql.middleware.svc.cluster.local

  1. 外网访问配置:mysql服务一般不建议配置外网,如果有需要可以如下配置:

服务详细信息页面,更多操作中选择编辑外网访问:

访问方式中选择NodePort方式,确定保存即可:

可以看到增加了节点端口,使用服务器外网IP加端口即可,使用集群内任何一台服务器的外网IP都可以: