基于 KubeSphere 部署 KubeBlocks 实现数据库自由
作者:尹珉, 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、流计算和向量型数据库服务。

为什么需要 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 发布!
基于 KubeSphere 部署 KubeBlocks 实现数据库自由的更多相关文章
- 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台
背景 从传统运维到容器化的 Docker Swarm 编排,从 Docker Swarm 转向 Kubernetes,然后在 Kubernetes 运行 SpringCloud 微服务全家桶,到最终拥 ...
- 基于docker-compose部署jumpserver
基于docker-compose部署jumpserver 组件说明 Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理.用户管理.资产授权等操作, 用户可以通过 Web 页面 ...
- 5.基于二进制部署kubernetes(k8s)集群
1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...
- [Docker-2]排查基于docker部署mysql主从过程中遇到“Slave_IO_Running: Connecting”这个疑难杂症
关于"Slave_IO_Running: Connecting"的排查方法,已经有很多博客写得清清楚楚了(很多都是复制粘贴..真浪费时间),那么如果已有的常规排查方法都不能解决你的 ...
- 基于kubeasz部署高可用k8s集群
在部署高可用k8s之前,我们先来说一说单master架构和多master架构,以及多master架构中各组件工作逻辑 k8s单master架构 提示:这种单master节点的架构,通常只用于测试环境, ...
- [系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源
基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配: ...
- C# 自动部署之附加数据库
转自心存善念 原文 C# 自动部署之附加数据库 看着别人的网站能够自动安装,数据库自动附加,觉得很神奇很向往,但是始终米有去手动实践. 网上找了下资料,发现实现起来其实很简单 直接code priva ...
- SQL Server 2008 数据库镜像部署实例之一 数据库准备
SQL Server 2008 数据库镜像部署实例之一 数据库准备 一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动 ...
- Mininet实验 OpenFlow1.3协议基于Mininet部署与验证
参照:OpenFlow1.3协议基于Mininet部署与验证 安装过程,参考原文. 实验 使用ifconfig查看本机IP地址:192.168.1.101 进入OpenDayLight界面,cd到bi ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
随机推荐
- 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十一章
图 11.2 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np plt.axes([0.1, ...
- 分享某Python下的mpi教程 —— A Python Introduction to Parallel Programming with MPI 1.0.2 documentation ( 续 #2 )
接前文: 分享某Python下的mpi教程 -- A Python Introduction to Parallel Programming with MPI 1.0.2 documentation ...
- 一群伪专家讨论“motherland”和“fatherland”,说说个人的观点
看了一个视频: 中国的文化里在找妈,美国的文化里在找爸!如何真正教育子女? ============================================= ================ ...
- 解密prompt系列35. 标准化Prompt进行时! DSPy论文串烧和代码示例
一晃24年已经过了一半,我们来重新看下大模型应用中最脆弱的一环Prompt Engineering有了哪些新的解决方案.这一章我们先看看大火的DSPy框架,会先梳理DSPy相关的几篇核心论文了解下框架 ...
- 从零到一:用Go语言构建你的第一个Web服务
使用Go语言从零开始搭建一个Web服务,包括环境搭建.路由处理.中间件使用.JSON和表单数据处理等关键步骤,提供丰富的代码示例. 关注TechLead,复旦博士,分享云服务领域全维度开发技术.拥有1 ...
- Leetcode: 1484. Groups Sold Products By The Date
题目要求如下: 输入的数据为 要求按照日期查询出每日销售数量及相应产品的名称,并按照字符顺序进行排序. 下面是实现的代码: import pandas as pd def categorize_pro ...
- ElementUI.Dialog.props怎么设置全局变量
在main.js中为啥?这个可以 ElementUI.Dialog.props.closeOnClickModal.default = false // 全局关闭点遮罩关闭弹框 为啥这个不可以? El ...
- idea汉化包安装失败解决方法
idea安装中文插件时提示: Plugin "Chinese (Simplified) Language Pack / 中文语言包" was not installed: 查看自己 ...
- SenseCraft 部署模型到Grove Vision AI V2图像处理模块
Grove Vision AI V2 图像处理模块开箱测评 摘要 今天教大家快速上手 Grove Vision AI V2 图像处理模块,我们将一起探讨如何利用 SenseCraft 部署 AI 模型 ...
- .net相关知识点总结
基础知识 [1]静态构造函数(执行一次,调用静态成员或实例化时执行一次) [2]抽象类和接口的区别 1:抽象类有字段,构造函数,非抽象方法(C#新版本接口可以定义方法体),接口没有 2:抽象类不可多继 ...