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
子命令重建实例 #285cluster 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
功能精简,移除
bench
,fault
,migration
子命令 #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
关注小猿姐,一起学习更多云原生技术干货。
版权声明: 本文为 InfoQ 作者【小猿姐】的原创文章。
原文链接:【http://xie.infoq.cn/article/8ade428b2df5c335db41d3e8a】。文章转载请联系作者。
评论