关于数据库:ShardingSphere-云上实践开箱即用的-ShardingSphereProxy-集群

51次阅读

共计 3669 个字符,预计需要花费 10 分钟才能阅读完成。

本次 Apache ShardingSphere 5.1.2 版本更新为大家带来了三大全新性能,其中之一即为应用 ShardingSphere-Proxy chart 在云环境中疾速部署一套 ShardingSphere-Proxy 集群,本篇将带大家具体理解该项性能。

一、背景和痛点

在云原生的环境下,一个利用能够在多个不同环境中进行批量的部署,应用原始的 yaml 进行重用,部署到新环境中也是困难重重。

能够看到,在进行 Kubernetes 软件部署时,咱们面临下述问题:

  • 如何治理,编辑和更新这些扩散的 Kubernetes 利用配置文件?
  • 如何把一套的相干配置文件作为一个利用进行治理?
  • 如何散发和复用 Kubernetes 的利用配置?

在迁徙 Apache ShardingSphere-Proxy 从 Docker 或者虚拟机到 Kubernetes 环境下,也存在上述这些问题。

因为 Apache ShardingSphere-Proxy 的灵活性特点,在一个集群中可能须要多个 Apache ShardingSphere-Proxy 正本。传统部署形式下,须要针对每一个正本进行独自的部署文件配置。没有版本化治理的部署形式,在降级过程中,也面临着不能疾速回滚,影响利用稳定性的危险。

在当初的企业中,集群也不只是只有一个,在多集群中进行复用配置,并且保障生产和测试集群的配置保持一致,保障测试的正确性,也是没有版本化治理的传统部署形式面临的另一大难题之一。

二、设计指标

因为 Apache ShardingSphere-Proxy 首次官网正式反对在云上进行标准化部署,对于部署形式的思考就变得尤为重要。须要思考到用户的易用性,复用的便捷性,对后续版本的兼容性,在调研了 Kubernetes 现有的几种部署形式后,咱们最终抉择了应用 Helm 对 Apache ShardingSphere-Proxy 制作一个 chart 提供给用户,使其可能对 Apache ShardingSphere-Proxy 部署进行治理,使其可能版本化,可复用。

三、设计内容

Helm 治理名为 chart 的 Kubernetes 包的工具,Helm 能够做以下的事件:

  • 从头开始创立新的 chart
  • 将 chart 打包成归档(tgz)文件
  • 与存储 chart 的仓库进行交互
  • 在现有的 Kubernetes 集群中装置和卸载 chart
  • 治理与 Helm 一起装置的 chart 的公布周期

应用 Helm 去构建 Apache ShardingSphere-Proxy 云上部署 chart,将大大简化用户在 Kubernetes 环境下部署的复杂度,并且能够使 Apache ShardingSphere-Proxy 在多个环境之间进行疾速复制。

因为现阶段,Apache ShardingSphere-Proxy 的部署依赖注册核心,在 Apache ShardingSphere-Proxy chart 中也同时对 ZooKeeper 集群的部署进行反对,这样给用户提供了一个一站式、开箱即用的体验。只须要执行一条命令,即可在 Kubernetes 中部署一个带有治理节点的 Apache ShardingSphere-Proxy 集群,并且能够依靠于 Kubernetes 的性能,对治理节点数据进行长久化。

四、实战指南

在 5.1.2 文档中提供了 quick start 应用默认的配置文件进行 Apache ShardingSphere-Proxy 集群部署,上面咱们将应用源码进行装置,具体地对其中的配置进行阐明并实战在 Kubernetes 集群中部署一个 Apache ShardingSphere-Proxy 集群。

环境筹备

在部署之前,咱们须要筹备环境。Apache ShardingSphere-Proxy charts 须要以下环境:

  • Kubernetes 集群 1.18+
  • kubectl 1.18+
  • Helm 3.8.0+

以上须要在实战之前进行装置配置。

charts 源码筹备

在仓库中下载 Apache ShardingSphere-Proxy charts:

 helm repo add shardingsphere https://shardingsphere.apache.org/charts
 helm pull shardingsphere/apache-shardingsphere-proxy
 tar -zxvf apache-shardingsphere-proxy-1.1.0-chart.tgz
 cd apache-shardingsphere-proxy

Apache ShardingSphere-Proxy charts 配置

配置 values.yaml 文件

将:

governance:
   ...
   zookeeper:
     replicaCount: 1
   ...
 compute:
   ...
   serverConfig: ""

改为:

governance:
   ...
   zookeeper:
     replicaCount: 3
   ...
 compute:
   ...
   serverConfig:
     authority:
       privilege:
         type: ALL_PRIVILEGES_PERMITTED
       users:
       - password: root
         user: root@%
     mode:
       overwrite: true
       repository:
         props:
           maxRetries: 3
           namespace: governance_ds
           operationTimeoutMilliseconds: 5000
           retryIntervalMilliseconds: 500
           server-lists: "{{printf \"%s-zookeeper.%s:2181\".Release.Name .Release.Namespace}}"
           timeToLiveSeconds: 600
         type: ZooKeeper
       type: Cluster

⚠️:放弃缩进

残余配置请查看文档配置一项

装置 Apache ShardingSphere-Proxy & ZooKeeper 集群

当初的文件夹层级为:

helm
 ├── apache-shardingsphere-proxy
 ...
 |   |
 │   └── values.yaml
 └── apache-shardingsphere-proxy-1.1.0-chart.tgz

回到 helm 文件夹,进行装置 Apache ShardingSphere-Proxy & ZooKeeper 集群。

helm install shardingsphere-proxy apache-shardingsphere-proxy

在集群的 default 命名空间下,部署了 ZooKeeper & Apache ShardingSphere-Proxy 集群:

简略功能测试

应用 kubectl forward 进行本地调试:

kubectl port-forward service/shardingsphere-proxy-apache-shardingsphere-proxy 3307:3307

创立后端数据库 Database:

应用 MySQL client 进行连贯并应用 DistSQL 增加数据源:

mysql -h 127.0.0.1 -P 3307 -uroot -proot

创立规定

写入数据,查问后果

降级

应用 Helm 能够疾速对 Apache ShardingSphere-Proxy 进行降级。

helm upgrade shardingsphere-proxy apache-shardingsphere-proxy

回滚

如果降级过程中出错,能够应用 helm rollback 命令对曾经降级的 release 进行疾速回滚。

helm rollback shardingsphere-proxy

清理

在体验实现后,能够应用 helm uninstall 命令对 release 疾速进行清理:

helm uninstall shardingsphere-proxy

Helm 装置的资源将被全副删除。

五、结语

应用 Apache ShardingSphere-Proxy charts 能够在 Kubernetes 集群中疾速部署一套 Apache ShardingSphere-Proxy 集群进行应用,简化了运维人员在迁徙 Apache ShardingSphere-Proxy 至 Kubernetes 环境下简单的配置 yaml 的过程。加上了版本化治理后,能够轻松的对 Apache ShardingSphere-Proxy 集群进行部署、降级、回归和清理。将来咱们还会对 Apache ShardingSphere-Proxy chart 进行持续迭代和欠缺,欢送大家继续关注。

欢送点击链接,理解更多内容:

Apache ShardingSphere 官网:https://shardingsphere.apache.org/

Apache ShardingSphere GitHub 地址:https://github.com/apache/shardingsphere

SphereEx 官网:https://www.sphere-ex.com

欢送增加社区经理微信(ss_assistant_1)退出交换群,与泛滥 ShardingSphere 爱好者一起交换。

正文完
 0