KubeBlocks

翻译

https://github.com/apecloud/kubeblocks/blob/main/README.md

欢迎使用 KubeBlocks 项目!

动机

如果你是开发者,在应用中使用多种类型的数据库,并考虑将应用和数据库都部署在 K8s 上以节省成本或提高效率,那么你需要为每种数据库找到合适的 operators(操作器)。学习如此多不同的 operators 及其 APIs 会带来显著的学习曲线和时间成本,更不用说维护它们所需的努力了。

KubeBlocks 使用统一的 APIs(CRDs)和代码在 K8s 上管理各种数据库。例如,我们可以使用 Cluster 资源来创建 PostgreSQL 集群、Redis 集群或 Kafka 集群。这种抽象和统一的 API 允许我们进一步使用一套 operator 代码来管理多种类型的数据库,以及处理第二天的操作,理论上可以扩展到任何类型的数据库引擎。

什么是 KubeBlocks

KubeBlocks 是一个开源的 control plane(控制平面)软件,通过统一的代码和 APIs 在 K8s 上运行和管理多种流行的数据库 engines(引擎)。KubeBlocks 的核心是一个 K8s operator,它定义了一组 CRDs 来抽象各种数据库 engines 的通用属性,并使用这些抽象来管理 engine 的生命周期和第二天的操作。

KubeBlocks 管理多种类型的 stateful engines(有状态引擎),包括 RDBMSs(如 MySQL、PostgreSQL)、Caches(如 Redis)、NoSQLs(如 MongoDB)、MQs(如 Kafka、Pulsar)、vector databases(如 Milvus、Qdrant、Weaviate)和 data warehouses(如 ClickHouse、ElasticSearch、OpenSearch、Doris、StarRocks)。通过编写 KubeBlocks Addon(插件)可以将新 engine 添加到 KubeBlocks 中。社区正在积极将更多类型的 engines 集成到 KubeBlocks 中,目前它支持 35 种类型的 engines。

KubeBlocks 的命名灵感来源于 Kubernetes 和 LEGO 积木,意味着通过 KubeBlocks API,像玩 LEGO 积木一样,可以在 K8s 上轻松、标准和高效地添加、组合和管理数据库 engines。

为什么需要 KubeBlocks

KubeBlocks 集成了最流行的数据库 engines,并在各种环境中提供了丰富的管理功能和声明式 APIs。KubeBlocks 提供了以下好处:

  • 生产级别:KubeBlocks 已经被大型互联网公司、私有云、金融行业(包括银行和证券公司)、电信行业、汽车行业以及 SaaS 软件提供商采用。
  • 可靠性:KubeBlocks 支持集成各种成熟的 high-availability(高可用性)最佳实践,如 Orchestrator、Patroni 和 Sentinel。KubeBlocks 还支持 full backups(完整备份)、continuous backups(持续备份)和 point-in-time recovery(时间点恢复,PITR)。
  • 易用性:KubeBlocks 不仅提供了基于 YAML 的 API,还提供了交互式的 kbcli 工具,进一步简化了使用,作为 kubectl 的补充。例如,你可以通过一条命令安装 KubeBlocks 并在桌面或云上启动一个 playground environment(演练环境)。
  • 可观测性:KubeBlocks 从丰富的数据源收集 monitoring metrics(监控指标),与 Prometheus 堆栈集成,并提供了 insightful(有洞察力的)Grafana 模板。此外,还提供了如 slow logs(慢日志)等 troubleshooting tools(故障排除工具)。
  • 可扩展性:KubeBlocks 提供了 addon mechanism(插件机制)来集成新 engines。因此,它可以扩展到运行你的项目所需的 databases(数据库)。

目标

  • 平滑管理各种 databases 的学习曲线
  • 探索在 Kubernetes 上管理 databases 的标准 APIs
  • 保持开放和 cloud-neutral(云中立),以及 engine-neutral(引擎中立)

关键特性

  • 支持多种 databases,包括 MySQL、PostgreSQL、Redis、MongoDB、Kafka、ClickHouse、ElasticSearch 等
  • 提供生产级别的性能、弹性和可观测性
  • 简化第二天的操作,如升级、扩展、监控、备份和恢复
  • 包含强大且直观的命令行工具
  • 兼容 AWS、GCP、Azure、阿里云等更多 CSP(云服务提供商)

开始使用 KubeBlocks

Quick Start 展示了开始使用 KubeBlocks 的最快方法。

资源

  • API Reference(API 参考)
  • How to write a KubeBlocks Addon?(如何编写 KubeBlocks 插件?)
  • KubeBlocks: Cloud-Native Data Infrastructure for Kubernetes(KubeBlocks:Kubernetes 的云原生数据基础设施,由 Viktor Farcic 制作的视频)
  • Dashboard Demo(仪表板演示)

KubeBlocks 在 KubeCon 上

2024 年 8 月 21 日至 23 日在香港的 KubeCon 上:

  • How to Manage Database Clusters Without a Dedicated Operator(如何在没有专用 operator 的情况下管理数据库 clusters),由 Shanshan Ying(ApeCloud)和 Shun Ding(中国移动云)主讲
  • KuaiShou’s 100% Resource Utilization Boost: 100K Redis Migration from Bare Metal to Kubernetes(快手 100% 资源利用率提升:10 万 Redis 从裸金属迁移到 Kubernetes),由 XueQiang Wu(ApeCloud)和 YuXing Liu(快手)主讲

社区

如果你有任何问题,可以通过以下方式联系我们:

  • KubeBlocks Slack Channel(KubeBlocks Slack 频道)
  • KubeBlocks GitHub Discussions(KubeBlocks GitHub 讨论)
  • KubeBlocks Wechat Account(KubeBlocks 微信公众号)

你也可以在以下平台关注我们:

  • Twitter(推特)
  • LinkedIn(领英)

贡献给 KubeBlocks

欢迎并感谢你的贡献。

  • 参见 Contributor Guide(贡献指南) 了解典型 contribution workflows(贡献流程)的详细信息。
  • 参见 Developer Guide(开发者指南) 开始构建和开发。

报告漏洞

我们视安全为最优先的问题。如果你发现任何安全问题,请 报告安全漏洞问题

许可证

KubeBlocks 采用 GNU Affero General Public License v3.0

KubeBlocks笔记

概述

KubeBlocks 是一个开源的 Kubernetes 数据库 Operator,旨在帮助用户在 Kubernetes 上运行和管理多种类型的数据库。它提供了通用的 API 和命令行工具 kbcli,支持 MySQL、PostgreSQL、MongoDB、Redis、Kafka 等多种数据库引擎。

主要特点
  • 高可用性:集成成熟的高可用解决方案,如 Orchestrator、Patroni 和 Sentinel。
  • 备份恢复:支持全量、增量备份及点恢复功能。
  • 易于使用:提供 YAML 配置和 kbcli 命令行工具简化操作流程。
  • 可扩展性:具备插件机制,允许集成新的引擎或服务。
  • 多云支持:兼容 AWS、GCP、Azure 等主流云平台。
安装指南
  1. 环境准备

    • 准备一个可访问的 Kubernetes 集群,版本要求 1.22 及以上。
    • 安装 kubectl 和 Helm。
  2. 安装 Snapshot Controller

    • 部署 Snapshot Controller,用于管理 CSI 卷快照:
      helm repo add piraeus-charts https://piraeus.io/helm-charts/
      helm repo update
      helm install snapshot-controller piraeus-charts/snapshot-controller -n kb-system --create-namespace
      
  3. 安装 KubeBlocks

    • 获取最新版本号:
      curl -s "https://api.github.com/repos/apecloud/kubeblocks/releases?per_page=100&page=1" | jq -r '.[] | select(.prerelease == false) | .tag_name' | sort -V -r | head -n 1
      
    • 创建所需的 CRDs:
      kubectl create -f https://github.com/apecloud/kubeblocks/releases/download/<VERSION>/kubeblocks_crds.yaml
      
    • 添加 KubeBlocks 的 Helm 仓库并安装:
      helm repo add kubeblocks https://apecloud.github.io/helm-charts
      helm repo update
      helm install kubeblocks kubeblocks/kubeblocks --namespace kb-system --create-namespace
      
  4. 验证安装

    • 检查 KubeBlocks 的 Pod 是否正常运行:
      kubectl get pods -n kb-system
      
访问官方文档和 GitHub 仓库
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值