Bitnami提供的MySQL Helm chart,用于在Kubernetes环境中简化MySQL数据库的部署、配置与管理,遵循开源最佳实践。
下载次数: 7714501
类型:
bitnamicharts/mysqlBitnami 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,避免自动更新导致不一致以下是 bitnamicharts/mysql 相关的常用 Docker 镜像,适用于 关系型数据库、事务处理、数据存储 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务