通过Kubernetes安装mysql5服务

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

一、基础部署:快速验证 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.cnfconfconf.d 目录,灵活覆盖 / 扩展 MySQL 配置。
  4. 外部访问:创建 NodePort 服务,通过集群节点 IP + 端口对外提供 MySQL 访问,完成部署闭环。

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

相关推荐
易点云徐源15 小时前
(已解决)adb devices 不显示设备,但 Windows 的 ADB Interface 正常:一次 WinUSB 与旧版 ADB 兼容性排查实战
windows·adb
夜雪一千1 天前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
clorinda1 天前
MySQL 入门笔记:DQL 基础查询与常用函数
adb
Code额2 天前
基于 SQLAlchemy 2.x,面向 MySQL 数据库的从入门到精通实战教程(2)
数据库·sql·mysql·adb·ai
游戏开发爱好者82 天前
WebSocket 抓包怎么查看内容?从握手到消息帧完整解读
网络协议·计算机网络·网络安全·ios·adb·https·udp
00后程序员张4 天前
SSL Pinning 抓包抓不到明文?绕过证书固定的几种方案
网络协议·计算机网络·网络安全·ios·adb·https·udp
没文化的阿浩5 天前
【MySQL】数据类型
android·mysql·adb
黄毛火烧雪下5 天前
智能眼镜无线adb调试
adb
游戏开发爱好者85 天前
带签名时间戳接口的重放与压力测试实战,用动态值在发送前现算签名
网络协议·计算机网络·网络安全·ios·adb·https·压力测试
Lethehong8 天前
MySQL迁移如何做到零改造?四层兼容方案详解
数据库·mysql·adb