写点什么

KubeBlocks v0.9 发布啦!API 全面升级、支持 Redis Cluster、MySQL 主备... 更多新功能等你发现!

作者:小猿姐
  • 2024-07-09
    浙江
  • 本文字数:2762 字

    阅读完需:约 9 分钟

KubeBlocks v0.9发布啦!API全面升级、支持Redis Cluster、MySQL主备...更多新功能等你发现!

🎉 KubeBlocks v0.9.0 版本正式发布了!KubeBlocks API 距离发布 v1.0 更近一步了。

API Highlights

  • 构建一个 Cluster 更像是在用 Component “搭积木”!ClusterDefinition API 增加了 topologies 字段,允许 Addon 开发者提供具有不同拓扑结构的多种部署形态,数据库使用者可以在创建 Cluster 时通过 topology 字段来选择。比如说 Redis Addon 提供了单节点、主从、Proxy 这三种拓扑结构:单节点形态仅包含 RedisServer 一个 Component,主从形态包含 RedisServer 和 Sentinel 这两种 Component,而 Proxy 形态会增加第三种 Component,例如 Twemproxy。

  • 新增对分布式数据库水平分片扩缩容(Reshard)的管理!在 KubeBlocks v0.9 里,用户可以用一个 Component 来表示一个水平分片,通过新增和删除 Component 来表示水平分片的扩容与缩容。这个扩展能力将用在 Redis 和 Pika 的分布式部署形态中。

  • KubeBlocks 用 InstanceSet 代替了 StatefulSet 来管理 Pods!InstanceSet 支持将指定的 Pod 下线、Pod 原地更新,同时也支持数据库主从架构里主库和从库采用不同的 Pod spec(这些功能 StatefulSet 均不支持)。

  • Addon 开发者可以为 Component 添加更多自定义的事件处理例程!ComponentDefinition API 在 KubeBlocks v0.8 中引入,其中包含了 lifeCycleActions 字段,允许 Addon 开发者定义各种自定义事件例程。KubeBlocks v0.9 中开放了更多的例程允许 Addon 提供自定义实现:包括 roleprobe(节点角色探测),memberLeave(节点下线),preTerminate(Component 下线),postProvision(Component 上线)。事件处理例程的扩展增强了 KubeBlocks 的表达能力,例如在 preTerminate 和 postProvision 可以用来执行分布式数据库的跨分片数据重分布(Rebalance),也可以发起注册到第三方 HA 管理器如 Sentinel、Orchestrator。

Addon Highlights

  • KubeBlocks 新增 Redis 集群模式(分片模式) #5833

  • KubeBlocks v0.8 支持了 Redis Sentinel 集群,提供了出色的故障转移支持,但是无法承载较高的写流量。Redis Cluster 是另外一种 Redis 拓扑架构,旨在提供水平的写扩展能力以及智能的客户端高可用策略。Redis Cluster 将数据分布到多个 Redis 节点上,显著提高了系统的容量、性能以及可用性。

  • KubeBlocks 新增 MySQL 主备模式 #1330

  • 相对于 MGR 集群,MySQL 主备拓扑架构对资源的要求更少(只需要两个数据库副本),而且数据复制的开销也更小。在业务对服务可用性和数据可靠性没有极致要求的情况下,主备拓扑不失为一种高性价比的选择。用户可以通过 kbcli 主动切换 MySQL 副本的角色,也可以通过 kubectl 删除指定的 Kubernetes pod 来触发被动的 failover。在没有长事务和大表 DDL 的前提下,failover 一般能在 30s 内完成。

What's Changed

新功能

KubeBlocks

  • ClusterDefinition API

  • 支持 toplology API,Addon 开发者可自定义多种拓扑形态 #6582

  • Cluster API

  • 支持 ShardingSpec API #6437

  • 支持 Sharding 扩缩 #6774

  • ComponentDefinition API

  • lifecycleActions API 可支持用户自定义多种引擎运维相关 actions,包括 roleprobe, memberLeave, preTerminate, postProvision #6037 #6582 #6720 #6774

  • 新增 Vars API,用于引用实例相关的动态资源和信息,包括 secret, service, service reference 等

  • 支持 Vars API #5919

  • 支持跨 Component 的 Vars 引用 #7155

  • 优化 ServiceRef 引用 #7006

  • 支持配置动态渲染,在 vscale 和 hscale 之后,重新生成指定变量 #6273 #6690

  • Component

  • 支持删除 Component #6774

  • 支持 ComponentVersion #6582

  • InstanceSet API

  • InstanceSet 代替 StatefulSet 来管理 Pods InstanceSet #7084

  • 实例模板(Instance Template) #5799

  • 指定实例缩容 #6958

  • 原地更新(In-place Update)#7000

  • OpsRequest API

  • 支持重搭故障备实例 #6872

  • 支持 force flag 来控制是否并发 #6828

  • 支持自定义多任务顺序执行 #6735

  • NodeCountScaler #7258

  • 支持 PITR #6779

  • 支持跨 NameSpace 恢复 #6778

kbcli

  • 支持 PostgreSQL 基于时间点恢复 #329

  • cluster 支持 rebuild-instance 子命令重建实例 #285

  • cluster create 子命令支持 elasticsearch #389

  • 创建备份仓库时支持指定路径前缀 #294

Addons

Redis
  • 支持官方 Redis Cluster 集群形态 #301

  • Redis 功能和稳定性的增强

  • 适配新的 ComponentDefinition 以及 ComponentVersion 等新 API,多种 topology 形态支持 #501

  • Redis 主备集群初始化逻辑优化,移除对 DownwardAPI 的依赖 #462 #616

  • 支持 Redis 7.2.4 版本 #571

  • 支持 Redis 分片集群备份和恢复 #442

MySQL
  • 新增开源组件 Orchestrator Addon,来管理 MySQL #625 #567

PostgreSQL
  • 支持 PostgreSQL PITR #361

  • 支持 PostgreSQL 15.7 版本 #529

Qdrant
  • 支持 Qdrant 分片集群备份和恢复 #442

MogDB
  • 支持 MogDB 5.0.5 主备集群的创建、扩缩容、备份和切换 #343 #350

Elasticsearch
  • 支持 Elasticsearch 7.7.1, 7.10.1 和 8.8.2 版本 #767

Pulsar
  • 支持了 3.0.2 版本 #340

  • 支持 NodePort #358

VictoriaMetrics
  • 支持了 VictoriaMetrics v1.100.1 #479

API deprecations, and other changes for Release 0.9

  • ConfigConstraint API 逐渐稳定,由 v1alpha1 升级到了 v1beta1

  • StorageProvider 变更了 group,从 storage.kubeblocks.io 迁移到 dataprotection.kubeblocks.io

  • ClusterVersion v1alpha1 CRD 会在 Release 1.0 移除

  • ComponentClassDefinition v1alpha1 CRD 会在 Release 1.0 移除

  • ComponentResourceConstraint v1alpha1 CRD 会在 Release 1.0 移除

  • ClusterDefinition API

  • type, componentDefs, connectionCredential 会在 Release 1.0 移除

  • Cluster API

  • 调度相关:tenancy, availabilityPolicy, 会在 Release 1.0 移除

  • API 简化相关:replicas, resources, storage, network, 会在 Release 1.0 移除

  • ComponentDefintion API

  • switchPolicy 会在 Release 1.0 移除,可用 componentDefintion.spec.lifecycleActions.switchover API 实现同等能力。

  • ServiceRef API

  • cluster 会在 Release 1.0 移除,可用 serviceRef.clusterServiceSelector 实现同等能力。


此外,所有用于引用上述 API 的字段也相应标记为 Deprecated,会在 Release 1.0 移除。


  • clusterVersionRef

  • componentDefRef

  • classDefRef


在 KubeBlocks Release 0.9 中,依然保持了对标记为 Deprecated 的 API 的兼容。

Deprecated Features

kbcli Deprecated features

  • 功能精简,移除 benchfaultmigration 子命令 #343

End

小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!


💻 官网: www.kubeblocks.io


🌟 GitHub: https://github.com/apecloud/kubeblocks


🚀 Get started: https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop


关注小猿姐,一起学习更多云原生技术干货。


发布于: 刚刚阅读数: 3
用户头像

小猿姐

关注

还未添加个人签名 2022-08-11 加入

每个开发者都想知道的云原生和数据库技术

评论

发布
暂无评论
KubeBlocks v0.9发布啦!API全面升级、支持Redis Cluster、MySQL主备...更多新功能等你发现!_数据库_小猿姐_InfoQ写作社区