KubeBlocks与OceanBase完成产品兼容互认,可以使用KubeBlocks管理你的OceanBase集群啦!

2023年 11月 30日 32.0k 0

前言

KubeBlocks (简称 KB)最新发布的 0.7 版本中,通过组件扩展(Addon)方式新增了对 OceanBase 的支持,为企业级和非企业级用户在 Kubernetes 环境中创建和运维 OceanBase 提供了更加便捷的方式。

OceanBase & KubeBlocks

OceanBase 是由蚂蚁集团完全自主研发的分布式关系型数据库,具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL 标准和主流关系型数据库、低成本等特点,被越来越多的企业使用。

KubeBlocks 是一个开源的在 K8s 上运行和管理数据基础设施的系统软件,旨在帮助开发人员、SRE、平台工程师在企业中部署和维护专用的 DBPaaS,并支持多种公共云和私有云环境部署。

kubeblocks-architecture.png

KubeBlocks 是目前 CNCF Cloud Native LANDSCAPE 收录的唯一的开源多引擎数据 / 数据库管理系统项目。KubeBlocks 实现了对多种数据(库)系统的统一的抽象, 具有以下特点:

  • 性能:KubeBlocks 容器和云环境对 MySQL 与 PostgreSQL 数据库的内核和参数进行优化,性能超过同规格 RDS。
  • 可用性:KubeBlocks 支持多种数据库的高可用集群配置,对 MySQL 支持 Raft 三节点复制,从而实现 RPO=0。
  • 可观察性:KubeBlocks 从丰富的数据源采集监控指标,集成了 Prometheus 堆栈,并提供了富有洞察力的 Grafana 模板。此外,还提供慢日志等排查工具。
  • 可扩展性:KubeBlocks 对接入一个新的数据库引擎提供了良好的抽象,通过组件扩展(Addon)机制可以快速集成,并提供一致的使用体验和预期行为。

KubeBlocks 0.7 版本现已支持 30+ 数据(库)系统组件。

在 KubeBlocks 社区的 0.7 版本,KubeBlocks 完成了与 OceanBase 开源版的适配。正是因为 KubeBlocks 提供的一致性体验,KubeBlocks 社区用户可以“0学习成本”快速掌握创建和运维 OceanBase 集群的方式。证书见后文。

轻松集成

KubeBlocks 对数据库系统的高度抽象带来的扩展性,方便开发者轻松扩展一款新的数据库。细心读者已经发现了,该 PR 只包含 500 行代码,其中大部分是 YAML。

OB PR.png

使用 KubeBlocks 轻松管理 OceanBase 集群

准备工作

1. 安装 KubeBlocks 和 kbcli

如果这是你第一次使用 KubeBlocks,请先安装 KubeBlocks 和 kbcli。

  • 安装 kbcli

    curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash
    
  • 安装 KubeBlocks

    kbcli kubeblocks install
    

更多安装方式请参考 KubeBlocks 官方文档: kubeblocks.io

2. 查看 OceanBase 组件版本

  • 更新 KubeBlocks repo

    helm repo add kubeblocks  https://apecloud.github.io/helm-charts
    
    helm repo update kubeblocks
    
  • 查看最新的 OceanBase 组件版本

    helm search repo kubeblocks/oceanbase
    >
    NAME                                CHART VERSION        APP VERSION                       DESCRIPTION
    kubeblocks/oceanbase                0.7.1                4.2.0.0-100010032023083021        Unlimited scalable distributed database for dat...
    kubeblocks/oceanbase-cluster        0.7.1                4.2.0.0-100010032023083021        A oceanbase cluster Helm chart for KubeBlocks.
    

可以看到最新的 helm chart 版本为 v0.7.1,可以部署OceanBase v4.2.0。

其中 kubeblocks/oceanbase 就是 OceanBase 的组件扩展,定义了符合 KubeBlocks 统一抽象模型的 OceanBase 数据库拓扑(包括有哪些组件,如何配置和启动)。

kubeblocks/oceanbase-cluster 提供了创建 OceanBase 数据库所需资源(CPU,Memory,Disk,Replica 等)的最佳实践。

KubeBlocks 0.7 版本已经集成了 30+ 数据(库)系统组件,可以通过类似方式查看。
完整列表请参考:kubeblocks.io/docs/releas…

3. 安装 OceanBase 组件扩展

helm install oceanbase kubeblocks/oceanbase --version 0.7.1

该组件只需安装一次。

创建 OceanBase 集群

仅需一条命令行,即可快速拉起一个 OceanBase 集群。

helm install obcluster  kubeblocks/oceanbase-cluster --version 0.7.1

查看 pod,可以看到一个三节点的 OceanBase 集群成功创建:

kubectl get po -l app.kubernetes.io/instance=obcluster-oceanbase-cluster
>
NAME                                      READY   STATUS    RESTARTS   AGE
obcluster-oceanbase-cluster-ob-bundle-0   1/1     Running   0          13m
obcluster-oceanbase-cluster-ob-bundle-1   1/1     Running   0          11m
obcluster-oceanbase-cluster-ob-bundle-2   1/1     Running   0          9m10s

连接 OceanBase 集群

KubeBlocks 命令行工具 kbcli 提供便捷的集群运维和管理命令的同时,也提供了丰富的运维操作,让用户以一致的体验操作不同的数据库引擎。例如,可通过 connect 命令连接到刚创建的 OceanBase 集群:

kbcli cluster connect obcluster-oceanbase-cluster

即可开始你的 OceanBase 之旅。

水平扩展 OceanBase 集群

若 3 个节点已经无法满足你的业务需求,可以快速扩展为 5 个节点。

kbcli cluster hscale obcluster-oceanbase-cluster --components ob-bundle --replicas 5

感谢

感谢来自 OceanBase 社区的 @Powerfool 同学协助完成本次集成。

未来 KubeBlocks 还会和 OceanBase 深度合作,完善对 OceanBase 的深度运维能力,为企业级和非企业级用户提供更加便捷的数据库使用和运维体验。

喜提证书

OB认证.png

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论