安装InnoDBCluster

Oracle官方提供了MySQL集群方案——InnoDBCluster

InnoDB Cluster架构图

如果自己部署的话,需要对着官方文档中的InnoDBClusterMySQL Router一步一步去配置了。

不过好在官方也提供了K8S Operator简化MySQL集群的部署。几个命令下来就能部署好,唯一需要注意的就是oracle官方的镜像国内拉取不到,所以我都是本地翻墙拉镜像后推到harbor私服。

按照官方文档的一个router,三个server的模式部署好:

Router

InnoDB Cluster

MySQL-Router会暴露读写、读写分离等多个端口,以及一个监控router状态的http探针端口:

MySQL Router服务暴露端口

如果要把数据存储在Ceph等分布式存储系统上,实现存算分离,可以在创建InnoDBCluster时指定StorageClass

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
name: my-innodb-cluster
spec:
secretName: mypwds
tlsUseSelfSigned: true
instances: 3
version: 9.3.0
router:
instances: 2
version: 9.3.0
datadirVolumeClaimTemplate:
accessModes:
- ReadWriteOnce
storageClassName: csi-rbd-sc
resources:
requests:
storage: 100Gi

集群创建完成后,把原数据迁移到InnoDBCluster。把原来的jdbc链接改成InnoDBCluster service的dns地址

image

本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载时请注明原文链接:https://blog.hufeifei.cn/2025/05/Linux/InnoDBCluster/

鼓励一下
支付宝微信