首页 > 数据库 >基于 KubeSphere 部署 KubeBlocks 实现数据库自由

基于 KubeSphere 部署 KubeBlocks 实现数据库自由

时间:2023-10-19 16:01:44浏览次数:35  
标签:Kubernetes 部署 KubeSphere KubeBlocks kbcli 数据库

作者:尹珉, KubeSphere Contributor & Ambassador,KubeSphere 社区用户委员会杭州站站长。

KubeSphere 是什么?

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。作为全栈的多租户容器平台,KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。KubeSphere 为用户提供构建企业级 Kubernetes 环境所需的多项功能,例如多云与多集群管理、Kubernetes 资源管理、DevOps、应用生命周期管理、微服务治理(服务网格)、日志查询与收集、服务与网络、多租户管理、监控告警、事件与审计查询、存储管理、访问权限控制、GPU 支持、网络策略、镜像仓库管理以及安全管理等。

KubeBlocks 是什么?

KubeBlocks 这个名字来源于 Kubernetes 和 LEGO 积木,这表明在 Kubernetes 上构建数据库和分析型工作负载既高效又愉快,就像玩乐高玩具一样。KubeBlocks 将顶级云服务提供商的大规模生产经验与增强的可用性和稳定性改进相结合,帮助用户轻松构建容器化、声明式的关系型、NoSQL、流计算和向量型数据库服务。

官网:https://kubeblocks.io/。

为什么需要 KubeBlocks?

Kubernetes 已经成为容器编排的事实标准。它利用 ReplicaSet 提供的可扩展性和可用性以及部署提供的推出和回滚功能来管理数量不断增加的无状态工作负载。然而,管理有状态工作负载给 Kubernetes 带来了巨大的挑战。尽管 StatefulSet 提供了稳定的持久存储和唯一的网络标识符,但这些功能对于复杂的有状态工作负载来说远远不够。

为了应对这些挑战,并解决复杂性问题,KubeBlocks 引入了新的 workload——RSM(Replicated State Machines),具有以下能力:

  • 基于角色的更新顺序可减少因升级版本、缩放和重新启动而导致的停机时间。
  • 维护数据复制的状态,并自动修复复制错误或延迟。

它俩结合会带来什么收益?

KubeSphere 提供了一个成熟的 Kubernetes 容器管理平台,而 KubeBlocks 在其上构建了数据库专业能力。这种创新融合,打通了数据库服务容器化的技术壁垒,实现了“开箱即用”。KubeSphere 让 KubeBlocks 应用享受集群级的资源调度和服务治理。KubeBlocks 使数据库服务在 KubeSphere 中具备自动化运维的专业实力。两者的协同互补,不仅简化了数据库的云化改造,也使数据库应用交付更加快速和可靠。

部署开始

部署先决条件

  • 确保已有可用的 KubeSphere 平台,如还未部署请至官网进行部署即可。官网地址:https://kubesphere.io/zh/docs/v3.4/。

  • 确保宿主机网络互通并可以访问互联网。

登录 KubeSphere 平台添加 KubeBlocks 官方仓库

仓库地址:https://apecloud.github.io/helm-charts。

选择干净的 NameSpace 添加 KubeBlocks 服务

1. 导航并点击右侧【创建】按钮

2. 选择【应用模板】

3. 选择刚才创建的【应用仓库】并搜索到 KubeBlocks 服务

4. 选择目前的稳定版本【0.6.1】

5. 默认不需要改 Values 的值,额外要注意 StorageClass 的配置

6. 耐心等待后,确认应用服务启动状态正常

安装 kbcli

目前支持 macOS、Windows、Linux。本教程以 Linux 为例。

1. 安装 kbcli

curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash

2. 验证安装

kbcli version

3. 检查刚才部署的 Kubeblocks 相关信息

kbcli kubeblocks status

创建并连接到 MySQL 实例

说明:
KubeBlocks 官方支持 kbcli 和 kubectl 创建集群。本教程使用 kbcli 作为演示。

1. 查看可用于创建集群的所有数据库类型和版本

kbcli clusterdefinition list

kbcli clusterversion list

2. 创建 MySQL 实例

kbcli cluster create mysql mycluster

3. 检查实例状态

kbcli cluster list

4. 连接到 MySQL 实例

kbcli cluster connect mycluster -n default

总结

KubeSphere 提供了 GUI 和 DevOps 工具,大大降低了 Kubernetes 学习和使用门槛。KubeBlocks 基于 K8s Operator 模式实现了应用解耦和复用,是云原生架构的重要选择。双方深度融合,发挥各自在易用性和敏捷开发上的优势。KubeSphere 让 KubeBlocks 更易部署和使用,KubeBlocks 让应用在 KubeSphere 上更灵活弹性。通过结合两者优势,企业能够更轻松实施以应用为中心的数字化转型,实现业务创新。

本文由博客一文多发平台 OpenWrite 发布!

标签:Kubernetes,部署,KubeSphere,KubeBlocks,kbcli,数据库
From: https://www.cnblogs.com/kubesphere/p/17774907.html

相关文章

  • MyBatis Plus 达梦数据库 分页查询异常问题
    MyBatisPlus达梦数据库分页查询异常问题 一、问题背景根据博客《SpringBootMyBatisPlus整合达梦数据库》中提到分页查询问题,如果没有配置 MybatisPlusConfig.java文件,会出现如下现象:数据表PRODUCTION.PRODUCT_CATEGORY中的数据如下: 调用如下查询接口:http:/......
  • 使用JDBC操作数据库基本操作步骤
    书写jdbc需要四大要素:用户名、密码、URL、驱动Stringurl="jdbc:mysql://localhost:3306/test";Stringusername="root";Stringpassword="root";Stringdriver="com.mysql.jdbc.Driver";注册驱动Class.forName(driver);获取连接对象Con......
  • 数据库连接池
    //开启预编译功能Stringurl="jdbc:mysql://127.0.0.1:3306/db1?useSLL=false&useServerPrepStmts=true";盛connection的容器,标准接口:DataSource1.在lib目录下添加jar包,右击添加为库2.定义配置文件,放到src下3.加载配置文件Propertiseprop=newPropertise();prop......
  • 将达梦数据库的JDBC驱动包 DmJdbcDriver18.jar 安装到本地 Maven 仓库
    将达梦数据库的JDBC驱动包DmJdbcDriver18.jar安装到本地Maven仓库 一、问题背景在博客《SpringBootMyBatisPlus整合达梦数据库》中写道,从 https://eco.dameng.com/download/ 中下载达梦JDBC驱动包,如下: JDK1.8 对应的JDBC驱动包为:DmJdbcDriver18.jar ......
  • 2023年10月中国数据库排行榜:墨天轮榜单前五开新局,金仓、亚信热度攀升
    怀鸿鹄之志,展骐骥之跃。2023年10月的墨天轮中国数据库流行度排行火热出炉,本月共有286个数据库参与排名。本月排行榜前十名变动较大,华为openGauss重归探花之位,人大金仓KingBase热度上升,亚信AntDB进军10强。墨天轮榜单前10之争再起风云,各数据库厂商持续锻造利器。本月排......
  • Doris数据库BE——冷热数据方案
    新的冷热数据方案是在整合了存算分离模型的基础上建立的,其核心思路是:DORIS本地存储作为热数据的载体,而外部集群(HDFS、S3等)作为冷数据的载体。数据在导入的过程中,先作为热数据存在,存储于BE节点的本地磁盘上。当数据需要转冷的时候,为该热数据分片创建一个冷数据的副本分片,然后将数据......
  • MySQL创建用户并授权指定数据库
    创建账号CREATEUSER'账号'@'%'IDENTIFIEDBY'密码';mysql8的话需要改一下加密方式ALTERUSER'账号'@'%'IDENTIFIEDWITHmysql_native_passwordBY'密码';创建数据库,必须要有库,不然无法绑定CREATEDATABASE数据库名;把数据库权限给用户GRANTSEL......
  • openGauss学习笔记-103 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管
    openGauss学习笔记-103openGauss数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书生成openGauss默认配置了通过openssl生成的安全证书、私钥。并且提供证书替换的接口,方便用户进行证书的替换。103.1操作场景在测试环境下,用户可以用通过以下方式进行数字证书测试。在......
  • 【orcal】数据库中如何提高写代码的效率之快捷键设置
     在数据库开发的过程中,有些操作要经常进行,为避免重复造轮子,因此,我们有必要想办法简化流程,以提高我们工作的效率!1.plsql(数据库开发工具客户端)快捷设置PL/SQLDeveloper是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural......
  • 【ORCAL】oracle 数据库中case when 语句的用法详解
     今天向大家介绍oracle数据库中casewhen语句的用法详解,主要包括它的用法详解、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值。CASEWHEN表达式有两种形式1--简单Case函数23CASEsex4WHEN'1'THEN'男'5WHEN'2'THEN......