Bitnami MySQL Helm Chart 用于在 Kubernetes 集群上快速部署和管理 MySQL 数据库。MySQL 是一款快速、可靠、可扩展且易于使用的开源关系型数据库系统,专为处理关键任务、高负载的生产应用而设计。本 Chart 基于 Bitnami 优化的 MySQL 容器镜像,支持单机(standalone)和主从复制(replication)两种架构,提供自动化配置、持久化存储、安全加固等企业级特性,适用于开发、测试及生产环境(生产环境推荐使用 Bitnami Secure Images)。
| 功能 | 描述 |
|---|---|
| 多架构支持 | 支持 standalone(单机)和 replication(主从复制)两种部署架构 |
| 安全凭据管理 | 通过 Kubernetes Secret 存储密码,支持自动/手动更新凭据 |
| 初始化脚本 | 支持 .sh、.sql、.sql.gz 类型的初始化脚本,主节点仅执行 SQL 脚本 |
| 监控集成 | 内置 mysqld_exporter,支持 Prometheus 指标采集和 ServiceMonitor 配置 |
| 持久化存储 | 支持动态 PV 配置或现有 PVC 挂载,数据路径 /bitnami/mysql |
| 网络隔离 | 可配置 NetworkPolicy 限制端口访问(默认3306) |
| 灵活的镜像管理 | 支持自定义镜像仓库、标签、拉取策略,兼容不可变标签(推荐生产使用) |
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/mysql
Bitnami 将升级公共目录,推出 Bitnami Secure Images 计划,具体变更如下:
docker.io/bitnamilegacy 仓库,不再更新详情见 Bitnami Secure Images 公告
指定发布名称(如 my-release)安装:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/mysql
替换
REGISTRY_NAME和REPOSITORY_NAME,Bitnami ***仓库为registry-1.docker.io/bitnamicharts
创建 values.yaml 配置文件,例如:
yamlarchitecture: "replication" # 启用主从复制 auth: rootPassword: "StrongRootPass123" password: "UserPass456" replicationPassword: "ReplPass789" persistence: size: "10Gi" # PV 存储大小
执行安装:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/mysql -f values.yaml
建议为生产环境配置资源请求和限制,避免资源竞争:
yamlresources: requests: cpu: "500m" memory: "512Mi" limits: cpu: "1000m" memory: "1Gi"
也可通过
resourcesPreset使用预设配置(如small、medium),但生产环境建议手动调整
启用 metrics 采集:
yamlmetrics: enabled: true # 部署 mysqld_exporter 边车容器 serviceMonitor: enabled: true # 创建 ServiceMonitor(需 Prometheus Operator)
通过 image.tag 指定版本(需对应 Bitnami 镜像标签):
yamlimage: repository: "bitnami/mysql" tag: "8.0.36" # 自定义版本标签
通过 initdbScripts 添加初始化脚本(支持 .sh、.sql、.sql.gz):
yamlinitdbScripts: create_database.sh: | #!/bin/bash # 仅主节点执行(主机名含 "primary") if [[ $(hostname) == *primary* ]]; then mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" -e "CREATE DATABASE IF NOT EXISTS app_db;" fi
.sh脚本在所有节点执行(需自行判断节点类型),.sql/.sql.gz仅在主节点执行
启用 TLS 需创建证书 Secret 并配置:
yamltls: enabled: true existingSecret: "mysql-tls-secret" # 包含 tls.crt、tls.key、ca.crt 的 Secret
自动生成证书(二选一):
tls.autoGenerated.enabled: true + tls.autoGenerated.engine: helmtls.autoGenerated.engine: cert-manager(需指定 Issuer)方法1:手动更新
shellkubectl create secret generic my-release-mysql --from-literal=root-password=NewRootPass --from-literal=password=NewUserPass --dry-run -o yaml | kubectl apply -f -
方法2:自动更新(推荐)
启用密码更新 Job:
yamlpasswordUpdateJob: enabled: true # helm upgrade 时自动执行密码更新 auth: rootPassword: "NewRootPass123" password: "NewUserPass456"
默认使用动态 PV,可自定义存储类或使用现有 PVC:
yamlpersistence: enabled: true storageClass: "fast-sc" # 自定义存储类 size: "20Gi" # existingClaim: "mysql-pvc" # 使用现有 PVC(需提前创建)
Bitnami MySQL 镜像也可直接通过 Docker 运行(非 Kubernetes 环境):
shelldocker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORD=root123 \ -e MYSQL_DATABASE=app_db \ -e MYSQL_USER=app_user \ -e MYSQL_PASSWORD=user123 \ -p 3306:3306 \ -v mysql-data:/bitnami/mysql \ bitnami/mysql:latest
yamlversion: '3' services: mysql: image: bitnami/mysql:latest ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=root123 - MYSQL_DATABASE=app_db - MYSQL_USER=app_user - MYSQL_PASSWORD=user123 volumes: - mysql-data:/bitnami/mysql volumes: mysql-data:
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局镜像拉取密钥(数组) | [] |
global.defaultStorageClass | 全局默认存储类 | "" |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过验证) | false |
global.compatibility.openshift.adaptSecurityContext | 是否适配 OpenShift 安全上下文(auto/force/disabled) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
architecture | 部署架构:standalone(单机)或 replication(主从复制) | standalone |
image.registry | MySQL 镜像仓库 | REGISTRY_NAME |
image.repository | MySQL 镜像名称 | REPOSITORY_NAME/mysql |
image.tag | 镜像标签(版本) | latest |
auth.rootPassword | root 用户密码(若使用现有 Secret 则忽略) | "" |
auth.database | 自动创建的数据库名称 | my_database |
auth.username | 自定义用户名 | "" |
auth.replicationUser | 复制用户名称(replication 架构需配置) | replicator |
persistence.enabled | 是否启用持久化存储 | true |
resources.requests.cpu | CPU 请求 | 250m |
resources.requests.memory | 内存请求 | 256Mi |
更多参数(如网络策略、Sidecar、备份配置等)请参考 Bitnami MySQL Chart ***文档。
生产环境建议使用 Velero 备份 PV 数据:
shellvelero backup create mysql-backup --include-resources=pvc,pv --selector app.kubernetes.io/name=mysql
shellvelero restore create --from-backup mysql-backup
bitnamilegacy 仓库且不再更新,生产环境需迁移至 Bitnami Secure Images8.0.36)而非 latest,避免自动更新导致不一致
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429