完成产品兼容互认,用KubeBlocks可实现OceanBase集群管理

news2024/10/6 8:24:41

本文转载自云猿生聊技术(CloudNativeDataTech)

前言

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

OceanBase × KubeBlocks

OceanBase是完全自主研发的分布式关系型数据库。它具备高性能、数据强一致性、高可用性等特点,支持在线扩缩容,并高度兼容SQL标准和主流关系型数据库,并可帮助企业实现规模化降本,已被1000+企业应用。

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

1701416728

KubeBlocks Architecture

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

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

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

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

轻松集成

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

1701416764

感谢来自 @Powerfool 同学的贡献

使用 KubeBlocks 轻松管理 OceanBase 集群

准备工作

1. 安装 KubeBlocks 和 kbcli

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

  • 安装 kbclicurl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash
  • 安装 KubeBlockskbcli kubeblocks install

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

2. 查看 OceanBase 组件版本
  • 更新 KubeBlocks repohelm repo add kubeblocks https://apecloud.github.io/helm-chartshelm repo update kubeblocks
  • 查看最新的 OceanBase 组件版本helm search repo kubeblocks/oceanbase>NAME CHART VERSION APP VERSION DESCRIPTIONkubeblocks/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+ 数据(库)系统组件,可以通过类似方式查看。完整列表请参考:https://kubeblocks.io/docs/release-0.7/user_docs/overview/supported-addons
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   AGEobcluster-oceanbase-cluster-ob-bundle-0   1/1     Running   0          13mobcluster-oceanbase-cluster-ob-bundle-1   1/1     Running   0          11mobcluster-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

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

参考资料

[1]KubeBlocks 官网: https://kubeblocks.io/OceanBase 官网: https://www.oceanbase.com/KubeBlocks 已支持 30+ 数据(库)系统组件: https://kubeblocks.io/docs/release-0.7/user_docs/overview/supported-addons

🌟 GitHub: GitHub - oceanbase/oceanbase: OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

🌟 GitHub:  GitHub - apecloud/kubeblocks: KubeBlocks is an open-source control plane that runs and manages databases, message queues and other data infrastructure on K8s.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1574274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

摄影杂记一

摄影小白,最近买了一台微单,型号是佳能R10,加上18-150套机镜头和佳能RF 50 F1.8定焦镜头。开始学习摄影。 PS:摄影穷三代,单反毁一生。嘿嘿。 一、分镜头拍摄四步提升法 B站:六斤 拍视频三件事&#xff1…

线程池CompletableFuture异步编排复习笔记

一、线程回顾 1.1 初始化线程的 4 种方式 1)、继承 Thread public static class Thread01 extends Thread {Overridepublic void run() {System.out.println("当前线程:" Thread.currentThread().getId());int i 10 / 2;System.out.print…

十分钟搞定TCP三次握手面试

三次握手过程 1.客户端与客户端都处于close状态,服务器主动对某端口进行监听后处于LISTEN状态 2.客户端将SYN标志位置为1,向服务器发,SYN和初始序列号seq后处于SYN_SENT状态 2.服务器处于LISTEN状态,收到客户端发来的请求后将SYN和ACK的标志…

基于DCT和扩频的音频水印嵌入提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ......................................................................... N 10; %嵌入一…

ubuntu安装编程字体DejaVu Sans Mono

DejaVu Sans Mono 安装命令: sudo apt-get install ttf-dejavu

唐刘:关于产品质量的思考 - 如何评估质量

在上一篇文章《 关于产品质量的思考 - 我的基本认知 》中,作者通过亲身经历分享了对产品质量的思考和认知:高质量的产品不仅仅是通过测试来保证的,更是通过在真实场景中不断打磨和改进得来的。本文为“关于产品质量的思考”系列的第二篇&…

2024.4.2-day07-CSS 盒子模型(显示模式、盒子模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.2 学习笔记CSS标签元素显示模式1 块元素2 行内元素3 行内块元素4…

每日OJ题_优先级队列_堆③_力扣692. 前K个高频单词

目录 力扣692. 前K个高频单词 解析代码 力扣692. 前K个高频单词 692. 前K个高频单词 难度 中等 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c…

技术再度取得优势,人工智能兴起推动需求,美芯涨价收割市场,收割中国制造?...

独家首发 ------------- 分析机构指出一季度全球存储芯片涨价了15%左右,而近期三星半导体预测全球存储芯片的价格还将继续上涨,预计二季度至少上涨两成,显示出美系芯片在忍受了一年多的亏损之后再度联手涨价。 2022年中国存储芯片取得了重大进…

数据流图

数据字典 数据流图平衡原则 父图与子图之间的平衡子图内平衡

IP地址到底有什么用

IP地址在计算机网络中的作用至关重要,它不仅是设备在网络中的唯一标识,更是实现网络通信、网络管理和安全的关键要素。下面,我们将从多个方面详细阐述IP地址的作用。 首先,IP地址作为设备的唯一标识,为网络通信提供了…

Leetcode 17.电话号码的字母组合

题目 思路 输入的digits有几个数就有几层。 一层中有几个数则取决于输入的数字对应的字母有几个。 1.确定递归函数的返回值及参数: 其实参数不是一开始就确定好的,而是你在写递归函数的时候缺啥,就往进去传啥。 这里我就直接全部写出来。…

什么是物联网云平台

在信息化和智能化浪潮的推动下,物联网云平台作为连接物理世界与数字世界的桥梁,正日益成为企业数字化转型的关键支撑。物联网云平台通过集成先进的云计算、大数据分析和人工智能等技术,为企业提供了高效、安全、智能的数据处理和应用服务&…

爬虫实战一、Scrapy开发环境(Win10+Anaconda3)搭建

#前言 在这儿推荐使用Anaconda进行安装,并不推荐大家用pythonpip安装,因为pythonpip的坑实在是太多了。 #一、环境中准备: Win10(企业版)Anaconda3-5.0.1-Windows-x86_64,下载地址,如果打不开…

Linux 著名的sudo、su是什么?怎么用?

一、su 什么是su? su命令(简称是:substitute 或者 switch user )用于切换到另一个用户,没有指定用户名,则默认情况下将以root用户登录。 为了向后兼容,su默认不改变当前目录,只设…

记录Ubuntu安装yum报错解决方法

安装问题分析 首先:分析一下,你按照别的博客安装yum出现的的大部分问题,都是说是在软件包里面无法定位yum,如下图一样,想必应该是这样的!!如果不是这个问题,放心这篇博客也可以帮你解…

可视化场景(9):智慧看板,可能是最直观的数据展示

10年经验的大数据可视化和数字孪生老司机,该领域的专家,是您可信赖的技术合伙人,分享该领域的项目和作品,欢迎互动交流。 hello,我是贝格前端工场,本期分享可视化大屏在安全生产与设备运维场景的应用&#…

【Web】纯萌新的BUUCTF刷题日记Day1

目录 [RoarCTF 2019]Easy Java [网鼎杯 2018]Fakebook [CISCN2019 华北赛区 Day2 Web1]Hack World [BJDCTF2020]The mystery of ip [网鼎杯 2020 朱雀组]phpweb [BSidesCF 2020]Had a bad day [BJDCTF2020]ZJCTF,不过如此 [BUUCTF 2018]Online Tool [GXYCTF…

pringboot2集成swagger2出现guava的FluentIterable方法不存在

错误信息 Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:117) The following method did not ex…

解决Idea导入项目:Unable to import maven project: See logs for details

2019.1版本idea,使用3.9.4版本maven,导入项目出现如下问题: 1.尝试修改配置参数 2.参数修改没有效果,查看具体日志 可以看到如下报错信息 3.解决办法 猜想Maven与IDEA版本不一致导致 由高版本:apache-maven-3.9.4 降…