2026-10-21 17:16:53
在 Kubernetes 上使用 Oracle 的 MySQL Operator 运行 MySQL 数据库,可按照以下步骤操作:
1. 安装 MySQL Operator使用 Helm 是安装 Operator 最便捷的方式。
安装完成后,可通过helm list -n mysql-operator确认部署状态。

每个数据库集群需关联一个包含 MySQL root 用户凭据的 Kubernetes Secret。
通过自定义资源 InnoDBCluster 定义集群配置。
spec.secretName:必须与 Secret 名称一致。
spec.instances:副本数量(最多 10 个)。
spec.router.instances:MySQL Router 实例数(用于流量负载均衡)。
初始化需几分钟,通过以下命令检查 Pod 状态:
$ kubectl get pods正常状态应显示所有副本和 Router 实例为 Running,例如:
NAME READY STATUS RESTARTS AGEmysql-cluster-0 2/2 Running 0 2mmysql-cluster-router-6b68f9b5cb-wbqm5 1/1 Running 0 2m5. 连接集群内部连接:Operator 会创建 Kubernetes Service,主机名格式为:
<cluster-name>.<namespace-name>.svc.cluster.local示例集群的主机名为 mysql-cluster.default.svc.cluster.local,应用程序配置端口 3306 及 Secret 中定义的凭据即可连接。
外部连接:使用 kubectl port-forward 临时暴露端口:
$ kubectl port-forward service/mysql-cluster 3306通过本地工具(如 MySQL Client)连接:
$ mysql -h127.0.0.1 -u root -p自定义 MySQL 配置:在 InnoDBCluster 清单中通过 mycnf 字段覆盖配置:
spec: mycnf: | [mysqld] max_connections=500 innodb_ft_min_token_size=5调整存储容量:默认存储为 2Gi,可通过 datadirVolumeClaimTemplate 修改:
spec: datadirVolumeClaimTemplate: resources: requests: storage: 10Gi注意:不支持就地扩容,需手动迁移数据。
固定 MySQL 版本:通过 version 和 router.version 字段锁定版本:
spec: version: 8.0.31 router: version: 8.0.31Oracle 的 MySQL Operator 简化了 Kubernetes 环境下 MySQL 集群的部署与管理,支持自动化初始化、备份、升级及高可用配置。通过自定义资源 InnoDBCluster 可灵活调整副本数、存储、网络等参数,同时保留对 MySQL 和 Kubernetes 环境的完全控制权。