作为 Database Plus 设计哲学的最佳实际,Apache 顶级开源我的项目 ShardingSphere 通过各行业多年的生产环境测验,受到了泛滥社区爱好者的关注和追捧。而随着 Kubernetes 成为容器编排的事实标准,其引领的云原生风暴迅速席卷了技术世界。Apache ShardingSphere 作为一个领有凋谢生态的数据库加强引擎,其设计理念和 Kubernetes 有着诸多相似之处,而在这股云原生浪潮之下,社区对 ShardingSphere 上云的呼声也越来越高,于是 SphereEx 率先推出了本人对于 ShardingSphere 云上的解决方案 ShardingSphere-on-Cloud,心愿以此为 ShardingSphere 飞向将来的翅膀,开启 Database Plus 的云上之旅。
shardinsphere-on-cloud 仓库将陆续公布对于 Apache ShardingSphere 在云上的各种配置模板、自动化脚本、部署工具以及 Kubernetes Operator 等最佳实际内容。目前 shardingsphere-on-cloud 已公布 v0.1.0 版本,次要蕴含了 ShardingSphere Operator 的最小可用版本。
ShardingSphere Operator
Kubernetes 可能成为云原生编排工具的事实标准的重要起因之一在于它弱小的可扩展性,能够帮忙开发人员疾速建设平台之上的平台。对于各种尝试运行在 Kubernetes 之上的软件,通过 Kubernetes 的 Operator 模式配合 CustomResourceDefinition 框架能够疾速构建自动化保护能力。
6 月 17 日,Apache ShardingSphere 在 5.1.2 版本中曾经公布了基于 Helm Charts 的包治理能力。如果说 Helm Charts 曾经帮咱们解决了 ShardingSphere 在 Kubernetes 之上的 Day 1 相干问题,即如何在 Kubernetes 中进行形容 ShardingSphere,并且将其进行部署。
而要想要解决 Day 2 关注的如何在 Kubernetes 治理一个有状态的或者简单的工作负载,就须要一个定制化的管理工具来实现。为了更进一步晋升 ShardingSphere 在 Kubernetes 之上的部署和保护能力,SphereEx 的云团队开发了 ShardingSphere Operator。
面对 Apache ShardingSphere 迁徙到 Kubernetes 环境中面临的各种问题,ShardingSphere Operator 做了以下几方面的摸索:
- 简化启动配置:ShardingSphere 领有丰盛的数据库加强能力,其相应的配置也较为简单。在以后版本里,ShardingSphere Operator 将配置和配置的挂载行为进行自动化,用户只须要填写最小化启动依赖配置,就能够在集群中疾速部署和启动一个 ShardingSphere-Proxy 集群,而运行时的配置都能够通过 DistSQL 进行实现。
- 主动部署治理节点:ShardingSphere 在运行的过程中依赖治理核心对元数据进行长久化,并实现集群节点间的元数据播送。为了优化用户体验,做到开箱即用,ShardingSphere Operator 能够依据用户须要将治理节点同计算节点一起部署,并配置依赖关系。
- 高可用:在云环境中为了简化保护,心愿尽可能实现去状态的部署。ShardingSphere-Proxy 作为无状态的计算节点,配合 ShardingSphere Operator 能够实现多种维度的衰弱状态探测和故障恢复能力。
- 程度扩容:利用 Kubernetes 的 HPA,能够实现基于 CPU 和内存的 ShardingSphere-Proxy 程度扩缩容。而 ShardingSphere Operator 将逐渐反对多种自定义指标,为 ShardingSphere-Proxy 实现更智能、更稳固的高级主动扩容能力。
具体来说在 v0.1.0 版本中,ShardingSphere Operator 次要提供了以下能力:
Helm 部署
-
ShardingSphere-Operator Chart
- 反对部署 ShardingSphere-Operator
-
ShardingSphere-Cluster Chart
- 反对部署 ShardingSphere-Proxy 集群
- 反对通过 Bitnami 部署 ZooKeeper 集群
- 反对 ShardingSphere-Proxy 主动配置并连贯治理节点
- 应用 Github Pages 托管 Charts 并能够应用
helm repo add
进行增加仓库
新个性
- 反对应用
shardingsphereproxy
CRD 进行形容 ShardingSphere-Proxy 集群信息 - 反对原生的 ShardingSphere-Proxy server.yaml 配置进行启动
- 反对基于 CPU 指标的 HPA 配置主动扩容
- 反对主动下载 MySQL 驱动
其余配置信息详见我的项目 ReadMe:
(https://github.com/SphereEx/s…)
疾速体验
能够通过以下命令疾速体验:
kubectl create ns sharding
helm repo add shardingspherecloud https://sphereex.github.io/shardingsphere-on-cloud/
helm install operator shardingspherecloud/shardingsphere-operator -n sharding
helm install cluster shardingspherecloud/shardingsphere-cluster -n sharding
上述命令会依照默认配置在 sharding
这个 Namespace 中装置 ShardingSphere Operator,ShardingSphere-Proxy 集群以及 ZooKeeper 集群,通过 Service 即可在集群中拜访 ShardingSphere-Proxy。而后通过 MySQL 客户端,应用 DistSQL 创立逻辑库,增加数据源和创立绝对应的规定表,即可开始享受运行在 Kubernetes 上的 ShardingSphere-Proxy 服务。
将来布局
将来 ShardingSphere Operator 会逐渐优化 ShardingSphere-Proxy 的部署形式,进步自动化保护能力,一直打磨在高可用和劫难复原场景中的体现,力求给用户最佳的云原生体验。而 shardingsphere-on-cloud 仓库则会继续排汇来自社区的云上各种实际计划,打造一个面向云、得益于云、加强云上数据库能力的凋谢解决方案生态。
如果你有任何内容想和咱们交换,欢送通过微信交换群、GitHub Issue 或 Apache ShardingSphere 官网 Slack 分割到咱们。
行将在 7 月 29 日举办的 ApacheCon 上,由 SphereEx 云团队的研发工程师李卓将为大家带来 《拥抱云原生,基于 Kubernetes 的 ShardingSphere 云化革新》 技术分享,欢送届时收看!
相干链接
SphereEx 官网:https://sphere-ex.com
Apache ShardingSphere 官网:https://shardingsphere.apache…
Apache ShardingSphere GitHub:https://github.com/apache/sha…
ShardingSphere Operator GitHub:https://github.com/SphereEx/s…
Apache ShardingSphere Slack Channel:https://apacheshardingsphere….
作者
SphereEx 云团队,次要负责 ShardingSphere 上云解决方案、Database Mesh 开源社区以及 SphereEx Cloud 业务。