🎉 KubeBlocks v0.9.0 版本正式发布了!KubeBlocks API 距离发布 v1.0 更近一步了。
01
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。
02
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 内完成。
03
What's Changed
lifecycleActions API 可支持用户自定义多种引擎运维相关 actions,包括 roleprobe, memberLeave, preTerminate, postProvision #6037 #6582 #6720 #6774cluster 支持
rebuild-instance 子命令重建实例 #285cluster create 子命令支持
elasticsearch #389storage.kubeblocks.io 迁移到
dataprotection.kubeblocks.iotype,
componentDefs,
connectionCredential 会在 Release 1.0 移除tenancy,
availabilityPolicy, 会在 Release 1.0 移除replicas,
resources,
storage,
network, 会在 Release 1.0 移除switchPolicy 会在 Release 1.0 移除,可用
componentDefintion.spec.lifecycleActions.switchover API 实现同等能力。cluster 会在 Release 1.0 移除,可用
serviceRef.clusterServiceSelector 实现同等能力。此外,所有用于引用上述 API 的字段也相应标记为 Deprecated,会在 Release 1.0 移除。
clusterVersionRefcomponentDefRefclassDefRef在 KubeBlocks Release 0.9 中,依然保持了对标记为 Deprecated 的 API 的兼容。
bench,
fault,
migration 子命令 #343
End
小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!
💻 官网:
🌟 GitHub: https://github.com/apecloud/kubeblocks
🚀 Get started: https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop
关注小猿姐,一起学习更多云原生技术干货。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70035809/viewspace-3021665/ ,如需转载,请注明出处,否则将追究法律责任。