通过Kubernetes安装mysql5服务

发布于:2025-09-03 ⋅ 阅读:(19) ⋅ 点赞:(0)

以下是清晰、结构化的操作流程优化说明,按步骤梳理从部署到配置持久化、暴露服务的完整过程:

一、基础部署:快速验证 MySQL 可用性

  1. 创建有状态工作负载
    进入 KubeSphere 项目 → 工作负载 → 有状态副本集 → 创建,选择 通过镜像创建,填写:

    • 名称:mysql-5.7(自定义,便于识别)
    • 镜像:docker.1ms.run/bitnami/mysql:5.7.26(Bitnami 封装的 5.7.26 版本)
    • 容器端口:暴露 3306(TCP 协议,MySQL 默认端口)
    • 环境变量:设置 MYSQL_ROOT_PASSWORD=123456(Root 密码,测试场景简化配置)

    无需额外存储 / 配置,快速部署验证容器启动是否正常。

二、数据持久化:挂载卷防止数据丢失

  1. 理解核心需求
    Bitnami MySQL 镜像的数据目录为 /bitnami/mysql/data,删除容器时该路径数据会丢失。需挂载 持久卷(PV/PVC) 留存数据。

  2. 配置存储挂载
    编辑工作负载 → 存储设置 → 添加存储卷

    • 类型:选择 PVC(持久卷声明),若集群无可用 PVC,可直接创建新 PVC(如 mysql-data-pvc)。
    • 挂载路径:/bitnami/mysql/data(严格匹配 Bitnami 数据目录,确保数据持久化)。

    说明:若挂载空目录,首次启动会自动初始化数据库;若已有数据备份,可提前写入 PVC 路径,容器启动会直接加载。

三、配置自定义:注入 my.cnf 覆盖 / 扩展配置

  1. 配置字典(ConfigMap)准备
    项目内 → 配置中心 → 配置字典 → 创建,通过 YAML 或表单添加 my.cnf 内容:

    yaml

    data:
      my.cnf: |
        [mysqld]
        lower_case_table_names=1
        max_connections=1000
        # 其他自定义参数...
    
  2. 挂载配置到容器
    编辑工作负载 → 存储设置 → 挂载配置字典

    • 选择刚创建的 ConfigMap(如 mysql-config)。
    • 挂载路径:
      • 若需覆盖默认配置,挂载到 /opt/bitnami/mysql/conf/my.cnf(替换镜像原生配置文件)。
      • 若需扩展默认配置,挂载到 /opt/bitnami/mysql/conf.d/custom.cnf(Bitnami 镜像会自动加载 conf.d 目录下的 .cnf 文件)。

四、对外暴露服务:从集群外访问 MySQL

  1. 创建 NodePort 服务
    项目内 → 服务 → 创建 → 无 selector 服务 / 关联工作负载,选择:

    • 关联工作负载:mysql-5.7(匹配之前创建的有状态副本集)
    • 端口设置:
      • 协议:TCP
      • 服务端口:3306(集群内访问端口,可自定义)
      • 目标端口:3306(容器内 MySQL 监听端口)
      • NodePort:自动分配(范围 30000-32767,或手动指定)。
  2. 验证外部访问
    通过集群节点 IP + NodePort 访问,使用 mysql -h IP地址 -P 30000 -u root -p 测试连接,输入密码 123456 验证登录。

五、完整流程总结

  1. 快速验证:用最简配置部署有状态工作负载,确认容器启动正常。
  2. 数据安全:挂载 PVC 到 /bitnami/mysql/data,保障数据不随容器删除丢失。
  3. 配置定制:通过 ConfigMap 挂载 my.cnf 到 conf 或 conf.d 目录,灵活覆盖 / 扩展 MySQL 配置。
  4. 外部访问:创建 NodePort 服务,通过集群节点 IP + 端口对外提供 MySQL 访问,完成部署闭环。

此流程适配 Bitnami 镜像的特殊路径要求(数据目录、配置加载逻辑),确保每一步配置都能精准生效,避免因路径不匹配导致的配置失效问题。


网站公告

今日签到

点亮在社区的每一天
去签到