通过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 镜像的特殊路径要求(数据目录、配置加载逻辑),确保每一步配置都能精准生效,避免因路径不匹配导致的配置失效问题。

相关推荐
独行soc4 小时前
2025年渗透测试面试题总结-106(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮
撩得Android一次心动8 小时前
Android adb 基础使用指南
android·adb
xiyangyang81108 小时前
ubantu的adb命令(首次安装adb)
adb
此生只爱蛋14 小时前
mysql_store_result
android·adb
川石课堂软件测试1 天前
全链路Controller压测负载均衡
android·运维·开发语言·python·mysql·adb·负载均衡
独行soc2 天前
2025年渗透测试面试题总结-105(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮
九皇叔叔2 天前
Docker 镜像维护指南:从配置优化到 MySQL 实战运行
mysql·adb·docker
muxin-始终如一2 天前
MySQL分区分表实现方法详解
数据库·mysql·adb
2501_929382652 天前
电视盒子助手开心电视助手 v8.0 删除电视内置软件 电视远程控制ADB去除电视广告
android·windows·adb·开源软件·电视盒子
和计算机搏斗的每一天3 天前
mysqlAB复制
adb