Oracle官方提供了MySQL集群方案——InnoDBCluster
如果自己部署的话,需要对着官方文档中的InnoDBCluster和MySQL Router一步一步去配置了。
不过好在官方也提供了K8S Operator简化MySQL集群的部署。几个命令下来就能部署好,唯一需要注意的就是oracle官方的镜像国内拉取不到,所以我都是本地翻墙拉镜像后推到harbor私服。
按照官方文档的一个router,三个server的模式部署好:
MySQL-Router会暴露读写、读写分离等多个端口,以及一个监控router状态的http探针端口:
如果要把数据存储在Ceph等分布式存储系统上,实现存算分离,可以在创建InnoDBCluster时指定StorageClass
1 | apiVersion: mysql.oracle.com/v2 |
集群创建完成后,把原数据迁移到InnoDBCluster。把原来的jdbc链接改成InnoDBCluster service的dns地址