使用 KubeBlocks 为 K8s 提供稳如老狗的数据库服务
大家好!今天这篇文章主要向大家介绍 Sealos 的数据库服务。在 Sealos 上数据库后端服务由 KubeBlocks 提供,为用户的数据库应用保驾护航。无论你是在公有云还是本地环境中使用,Sealos 都能为你管理关系数据库、NoSQL、向量数据库和流数据库等各种类型的数据库。它专为生产环境而设计,提供可靠、高性能、可观测且经济高效的数据基础设施。
让我们来看看数据库应用的魅力吧:
功能介绍
创建数据库
Sealos 提供了一个简单易用的数据库前端应用,屏蔽了繁琐的命令行操作。你只需通过 Database 应用就能轻松创建各种数据库,包括 Mysql、PostgreSQL、MongoDB、Redis 等多种类型的数据库。



连接使用
进入详情页面,你可以查看数据库的详细信息,并通过一键连接功能与数据库进行交互。这让操作变得更加便捷,让你与数据库之间的互动更加高效。

高可用测试
Sealos 在提供高可用服务方面表现出色,确保在关键时刻数据库能够正常工作,不会出现故障。这为你的数据提供了额外的保障,让你放心使用。我们将通过一个小小的测试来验证数据库的高可用。
首先创建一个实例数大于 1 的数据库应用,这里我们创建一个 3 实例的 PostGreSQL:

创建完成后便可通过一键连接功能进入到数据库命令终端:

我们点击 Add a Terminal 按钮创建第二个终端应用。
同时我们查看一下当前的主节点是哪个,发现是 test-postgresql-1:

现在我们要删除这个主节点,通过 kubectl delete pod test-postgresql-1 命令即可进行删除操作:


备份恢复功能
我们的数据库还提供了强大的备份恢复功能,这意味着即使出现数据丢失或损坏的情况,你也能轻松恢复到备份时的状态。无论是数据误删,还是面临灾难情况,备份都能帮助你快速恢复数据库,减少业务中断的时间。
下面也通过实例具体测试一下,我提前准备了一些数据用来测试:

进入到备份列表点击「备份」按钮进行备份操作:

这里我们演示一下手动备份的功能,备份名和备注都可以进行修改,我们直接点击「开始备份」按钮进行备份:

备份完成后通过状态可以查看备份的结果:

我们可以点击 「恢复」的图标进行恢复功能,并且等待恢复的数据库成功启动:

进入到恢复的数据库中进行数据查看,可以发现数据成功的恢复出来:

监控功能
在 Sealos 中,你不仅能轻松管理数据库,还能享受到用户友好的监控功能。你可以随时查看数据库的运行状态,并通过图表和指标监控数据库的性能表现。


实现原理
看到这里你可能会好奇 KubeBlocks 为何能在 Sealos 上提供稳定、高效的数据库服务。让我们一起深入了解它的实现原理并了解一下它的高可用架构以及备份恢复策略吧!
有状态服务设计
KubeBlocks 以一种灵活的方式进行数据库拓扑设计。它通过使用复制关系的 Replicated State Machine(RSM)作为核心组件,将复杂的分布式数据库拆分成无缝连接的基础组件(block)。无论是 Stateless、StatefulSet 还是 RSM,都可以轻松应用于 KubeBlocks 中。这意味着,你可以将任何数据库引擎与 KubeBlocks 结合使用,构建出更加灵活的系统架构。

高可用架构设计
KubeBlocks 实现了两种高可用算法:quorum-based 和经典主备。对于 quorum-based 类的数据库,KubeBlocks 提供了角色探测、角色校正和重建等功能,而数据库本身则负责更完整的探测、决策和切换等主体功能。对于经典主备场景,如 MySQL 和 PostgreSQL 主备,KubeBlocks 负责执行完整的探测、决策、切换、重建和角色校正等任务。此外,KubeBlocks 还采用通用的高可用架构,支持各种数据库类型,例如复制集群和分片集群,通过增加副本数量来提高可靠性和可用性,降低数据丢失的概率。


备份恢复设计
为了进一步保护数据并防止丢失或损坏,KubeBlocks 提供了备份恢复策略。备份可以用于多种情况,例如数据丢失、灾难恢复和数据迁移。在 Sealos 中,我们提供了物理备份功能,这意味着直接复制数据库的物理文件(包括数据文件和日志文件)到备份介质(如磁盘或磁带)上。物理备份具有快速恢复、数据一致性和空间效率的特点。它可以更高效地将备份文件还原到原始数据库,保持与数据库的物理状态完全一致,并且占用较少的存储空间。特别适用于大型数据库的备份和恢复需求,进一步提升 Sealos 作为生产环境的能力。

如果你对数据库服务感兴趣,我强烈推荐你尝试 Sealos 上的数据库服务。无论你是开发者、数据工程师还是系统管理员,这个稳如老狗的数据库服务都能帮助你更高效地管理和运维你的数据。让 Sealos 成为你的得力助手,让你的数据库运行如飞!
使用 KubeBlocks 为 K8s 提供稳如老狗的数据库服务的更多相关文章
- glusterfs+heketi为k8s提供共享存储
背景 近来在研究k8s,学习到pv.pvc .storageclass的时候,自己捣腾的时候使用nfs手工提供pv的方式,看到官方文档大量文档都是使用storageclass来定义一个后端存储服务, ...
- 写在使用 Linux 工作一年后
start 去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS ...
- 面试官:CPU百分百!给你一分钟,怎么排查?有几种方法?
Part0 遇到了故障怎么办? 在生产上,我们会遇到各种各样的故障,遇到了故障怎么办? 不要慌,只有冷静才是解决故障的利器. 下面以一个例子为例,在生产中碰到了CPU 100%的问题怎么办? 在生产中 ...
- 用Python抢到回家的车票,so easy!
“ 盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票. 据悉,今年春运期间,全国铁路发送旅客人次同比将增长 8.0%.达到 4.4 亿人次. 2020 年铁 ...
- BUAA 软工 结对项目作业
1.相关信息 Q A 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结对项目作业 我在这个课程的目标是 系统地学习软件工程开发知识,掌握相关流程和技术,提升 ...
- 填坑总结:python内存泄漏排查小技巧
摘要:最近服务遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路. 本文分享自华为云社区<python内存泄漏排查小技巧>,作者:luti ...
- 【Java分享客栈】我曾经的两个Java老师一个找不到工作了一个被迫转行了
前言 写这篇文章的初衷主要是最近发生了两件事,让我感慨良多,觉得踏入这个行业的初始,有些事情就应该长远考虑,这样对职业发展才更有利,仅仅停留在技术的追求上固然能壮大自身,可逆水行舟的程序员们终究会面临 ...
- 关于 MyBatis-Plus 分页查询的探讨 → count 都为 0 了,为什么还要查询记录?
开心一刻 记得上初中,中午午休的时候,我和哥们躲在厕所里吸烟 听见外面有人进来,哥们猛吸一口,就把烟甩了 进来的是教导主任,问:你们干嘛呢? 哥们鼻孔里一边冒着白烟一边说:我在生气 环境搭建 依赖引入 ...
- 夏令营提高班上午上机测试 Day 4 解题报告
我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...
- UPC:ABS
问题 G: ABS 时间限制: 1 Sec 内存限制: 128 MB提交: 537 解决: 186[提交] [状态] [讨论版] [命题人:admin] 题目描述 We have a deck c ...
随机推荐
- 2021-08-02:按公因数计算最大组件大小。给定一个由不同正整数的组成的非空数组 A,考虑下面的图:有 A.length 个节点,按从 A[0] 到 A[A.length - 1] 标记;只有当
2021-08-02:按公因数计算最大组件大小.给定一个由不同正整数的组成的非空数组 A,考虑下面的图:有 A.length 个节点,按从 A[0] 到 A[A.length - 1] 标记:只有当 ...
- v8 setup
记录下笔者本人搭建v8环境的过程 环境:处于一些原因笔者选择在kali2023上搭建v8,kali上可以搭建成功但是调试脚本加载有问题,fuck kali,还是ubuntu好,笔者使用了ubuntu2 ...
- 从0搭建Vue3组件库(十三):引入Husky规范git提交
为什么要引入 husky? 虽然我们项目中引入了prettier和eslint对代码格式进行了校验,但是多人开发的时候难免依然会有人提交不符合规范的代码到仓库中,如果我们拉取到这种代码还得慢慢对其进行 ...
- 抓包分析RST报文
大家好,我是蓝胖子,今天我们来分析下网络连接中经常出现的RST信号,连接中出现RST信号意味着这条链接将会断开,来看下什么时候会触发RST信号,这在分析连接断开的原因时十分有帮助. 本文的讲解视频已经 ...
- kafka学习笔记01
类似于京东商城这种电商系统,一般会在前端页面进行埋点记录仪用户的行为数据,包括浏览.点赞.收藏.评论等.这些行为会被记录到日志服务器中,使用Flume进行采集,然后传入Hadoop中. Flu ...
- Java 字符串反转,举例:键盘录入”abc”输出结果:”cba”
代码如下: public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out. ...
- 图书商城项目练习②后端服务Node/Express/Sqlite
本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程.面向初学者,本人也是初学者,搬砖技术还不成熟.项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite).到 ...
- node使用jsonwebtoken生成token与验证是否过期
场景 我们可以使用 cookie,session,token 来做鉴权. 下面我们来看一下, 如何使用 token 来做鉴权 jwt.sign 的简单介绍 npm install jsonwebtok ...
- 深入浅出security学习笔记
第一章 导入web和security依赖,然后默认提供了一个基于内存的UserDetailsServiceAutoConfiguration如下 会读取写入的user配置,SecurityProper ...
- 动态SQL与静态SQL使用场景
静态SQL 和动态SQL 的区别 静态SQL(或嵌入式SQL) 是应用程序中的 SQL 语句,它们在运行时不会更改,因此可以硬编码到应用程序中. 动态 SQL是在运行时构造的 SQL 语句:例如,应用 ...