KubeBlocks v0.8.0 发布!Component API 让数据库引擎组装更简单!
KubeBlocks v0.8.0 版本发布了!
KubeBlocks v0.8.0 推出了 Component API,让数据库引擎的组装变得更加简单。举个例子,我们可以将 etcd 和 zookeeper 这两种数据库做成了标准组件,开发者在定义 Kafka 或者 Pulsar 等复杂引擎时可以直接引用;再举个例子,我们还可以将 Proxy 做成了标准组件,开发者在定义各种发行版的 MySQL 或 PostgreSQL 引擎读写分离拓扑时无需重复劳动(heavy lifting)。Addon 机制也有了重大改进,数据库引擎的 helm chart 从 KubeBlocks repo 中拆分出去,从此数据库引擎或者版本的变动已与 KubeBlocks 发版解绑。
Highlights
独立的 Component API
在集成新数据库引擎的过程中,我们发现了 KubeBlocks 抽象设计上的不足。v0.8.0 将 Component 从 Cluster 定义中拆分出来,更好地支持含有多个组件的数据库类型。支持了 Component 之间的变量引用,包括 ConfigMap, Secret, Service, ServiceReference 等几种变量引用类型,可以更好的串联组件间的关系,为构建不同拓扑形态的集群奠定基础。
Addon helm chart 移出 KubeBlocks repo
在 v0.8.0 之前,数据库引擎的 Helm Chart 都是放在 deploy 目录下,与 KubeBlocks Operator 耦合在一起。这样存在两个问题,一是 KubeBlocks 升级时会同步升级数据库引擎,二是数据库引擎升级时会覆盖已有的 CD/CV,导致 Cluster 全部重启。为了解决这两个问题,在 0.8 中我们将数据库引擎拆分到了 kubeblocks-addon 这个独立的代码仓库下,同时数据库引擎和所有资源均加上了版本号,安装时不会覆盖原有资源导致 Cluster 重启。 配套提供了 kbcli addon 相关命令,用户可以进行下载、安装、使用、卸载对应版本的 addon,非常方便。
支持多版本的数据库引擎定义
在 v0.8.0 之前,KubeBlocks 升级可能会触发数据库集群的重启。在 v0.8.0 上,结合新的 Component API 和 Addon helm chart 存储机制,这个问题得到了一定程度的解决。后面我们还会继续优化多版本的设计,最终实现毫无负担地升级。
What's Changed
新功能
Pika
支持分片集群,允许用户通过调整组件的方式,增加存量集群的分片
Clickhouse
集成监控、scale out、高可用
Oceanbase
新增主备集群模式,支持完整生命周期,并集成了备份恢复、监控和切换
MySQL
社区版 MySQL 5.7 和 8.0 支持了完整的生命周期,并集成了备份恢复、监控和 HA
ApeCloud MySQL 新增日志审计功能
PostgreSQL
Postgresql 支持 wal-g 全量备份和按时间点恢复
支持 NodePort
Redis 支持 nodePort 访问方式
OpsRequest
支持自定义 OpsRequest,可用于创建和删除 Kafka Topic
备份恢复
新增 FTP 和 NFS 作为备份存储
易用性
允许用户一次性提交多个 opsRequest,并做了一定程度的并发控制
安装 KubeBlocks 时支持指定镜像仓库地址,加快镜像拉取速度
可观测性
统一日志和 mertrics 采集的配置管理 Kubeblocks monitor specification
API
新增 ComponentDefinition 接口定义
新增 OpsDefinition API
ActionSet 新增 PreDelete Action,可以在删除备份之前执行此动作
kbcli
增强 addon 子命令,支持从 addon 索引仓库检索和安装 addon
不兼容的改动
在 KubeBlocks v0.8 我们对 Oceanbase 做了非常多的改进(支持创建主备集群, 支持主机网络和动态端口, 支持备份/恢复, 监控, 日志等能力),0.7 版本创建的集群和 0.8 版本创建的集群不兼容,如果您正在使用 0.7 版本的 Oceanbase,建议您升级到 0.8 的 KubeBlocks 之后,升级 Oceanbase Addon,再将 0.7 版本的 Oceanbase cluster 迁移至 0.8 版本的 Oceanbase cluster 使用,以体验更丰富的功能. 推荐使用 OceanBase 官方数据导入导出工具(OBLOADER 和 OBDUMPER)来迁移数据.
KubeBlocks v0.8.0 精简了部署 KubeBlocks 时默认安装的数据引擎,删除 greptime,influxdb,neon,oracle-mysql,orioledb,tdengine,mariadb,nebula,risingwave,starrocks,tidb,zookeeper。用户可以通过 kbcli addon 子命令或者 kubectl apply 命令从 addon 索引仓库中按需安装;如果用户从低版本升级至该版本,请按照升级手册操作,避免正在使用的 addon 被删除从而影响正在运行的集群。
KubeBlocks 0.8 的 Helm Chart 中不再包含依赖的 CRD,在使用 helm 命令安装或升级 KubeBlocks 时需要先安装对应的 CRD,然后再安装或升级 KubeBlocks,请参照升级手册进行操作。
End
小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!
💻 官网: www.kubeblocks.io
🌟 GitHub: https://github.com/apecloud/kubeblocks
🚀 Get started: https://kubeblocks.io/docs/release-0.7/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop
关注小猿姐,一起学习更多云原生技术干货。
评论