MySQL InnoDB Cluster是MySQL高可用方案,利用MySQL Group Replication和MySQL Shell、MySQL Router可以轻松搭建强壮的高可用方案。
MySQL Shell是新的Mysql客户端工具支持X Protocol和Mysql Protocol,具备JavaScript和Python可编程能力,作为搭建InnoDB Cluster管理工具。
MySQL Router 是访问路由转发中间件,提供应用程序访问的Failover能力。
MySQL Group Replication是最新GA的同步复制方式,具有以下特点:
支持单主和多主模式
基于Paxos算法,实现数据复制的一致性
插件化设计,支持插件检测
没有第三方组件依赖
支持全链路SSL通讯
支持IP白名单
不依赖网络多播
鉴于MySQL部署运维的多样性和复杂性,在Kubernetes上部署MySQL InnoDB Cluster仍然要面临众多挑战。Kubernetes提供的Statefulset控制器只能提供最基本的部署,删除功能,无法实现完善的MySQL 集群高可用/备份恢复操作。对于有状态应用的部署,仍需要定制开发,所以多数公司提供了定制的Operator来完成应用容器的管理。
Oracle MySQLOperator是一个Kubernetes控制器,可以安装到任何现有的 Kubernetes集群中。安装后,它将使用户能够使用简单的声明性配置格式创建和管理生产就绪的MySQL集群,备份数据库和从现有备份恢复等常见操作任务变得非常容易,简而言之,MySQL Operator将在Kubernetes中运行 MySQL的繁重工作抽象化了。
该项目最初是MySQL InnoDB Cluster开发团队为了帮助Oracle内部团队更轻松地在Kubernetes中运行MySQL,但很快就发现许多其他人也面临类似的问题,Oralce于是将其开源,贡献给社区。
MySQL Operatorfor Kubernetes具有如下特点:
开发维护工作由Mysql InnoDB Cluster开发团队提供支持
自动化部署和管理MySQL Server 与MySQL Router
自动扩缩MySQL Server 与MySQL Router
自愈Self-healing
数据库备份和恢复
以最少的停机时间滚动升级
配置管理
从 InnoDB CLONE 部署
支持私有容器仓库
MySQL Operator forKubernetes部署过程极为简便,准备好Kubernetes实例环境之后,按照操作步骤开始部署。
第一步部署CustomResourceDefinition与Operator
第二步部署secret,作为Mysql访问的用户名与密码
第三步部署InnoDBCluster,完成之后之后监控部署结果,部署完成之后访问Kubernetes提供的MySQL服务。
更多Mysql Operator for Kubernetes操作内容访问官方网站:
https://github.com/mysql/mysql-operator

作者简介
向志华,甲骨文云架构团队资深咨询顾问,专注 Application PaaS 产品及服务,同时关注Docker容器产品及Kubernetes容器调度产品方向。13年IT行业从业经验,擅长J2EE产品架构及开发,参与过Openstack相关产品研发工作。您可以通过george.xiang@oracle.com,与他联系。