KubeBlocks v0.8.0 釋出!Component API 讓資料庫引擎組裝更簡單!

小猿姐聊技術發表於2024-01-15

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,請參照升級手冊進行操作。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70035809/viewspace-3003929/,如需轉載,請註明出處,否則將追究法律責任。

相關文章