容器化 | ClickHouse on K8s 基礎篇

做者:蘇厚鎮 青雲科技數據庫研發工程師git

目前從事 RadonDB ClickHouse 相關工做,熱衷於研究數據庫內核。github

ClickHouse[1] 是一款用於聯機分析(OLAP)的列式數據庫管理系統(DBMS)。由號稱「俄羅斯 Google」的 Yandex 公司開發,並於 2016 年開源,近年在計算引擎技術領域受到愈來愈多的關注,算是數據庫後起之秀。數據庫

Kubernetes[2] 是 Google 公司於 2014 年 6 月開源的一款容器集羣管理系統。適用於管理雲平臺多個主機的容器化應用,旨在讓部署容器化的應用簡單而且高效,努力成爲跨主機集羣的自動部署、擴展以及運行應用程序容器的平臺。微信

藉助 K8s 和容器化技術,咱們不只可使得應用的部署和管理更加簡單高效、提升硬件資源利用率等,還能夠實現健康檢查和自修復、自動擴縮容、負載均衡等高級功能。markdown

那麼,若是黑馬數據庫 ClickHouse 趕上火熱的容器化管理技術 K8s,會擦出怎樣的火花呢?併發

| ClickHouse 容器化方案概覽

當前 ClickHouse 的主流容器化方案包括 原生(Kubectl)部署Helm 部署 兩種,而每種又包括 是否使用 Operator 兩種狀況。負載均衡

部署方式 Kubectl 原生部署 Kubectl 原生部署 Helm 部署 Helm 部署
是否使用Operator × ×
部署方便程度
管理方便程度

| Helm 部署方案

Kubernetes 基於服務力度提供了不少資源類型,好比 Service、Deployment 等。當須要部署一個應用時,尤爲是有狀態應用,須要組合使用大量的 Kubernetes 資源,部署以後還須要管理它們,包括升級、更新換代、刪除等等。這時咱們會想,是否有這樣一個工具能夠在更上層的維度去管理這些應用呢?這個時候就有了社區的一個包管理工具:Helm[3]。運維

簡單來說,可把 Helm 看做是 Linux 中的 Yum,Java 中的 Maven。 對於應用發佈者而言,能夠經過 Helm 打包應用,管理應用依賴關係,管理應用版本併發布應用到軟件倉庫。對於使用者而言,使用 Helm 後不用須要瞭解 Kubernetes 的 Yaml 語法並編寫應用部署文件,能夠經過 Helm 下載並在 Kubernetes 上安裝須要的應用。工具

| ClickHouse Operator 管理方案

Operator in Kubernetes 是一個 Kubernetes 擴展,能夠簡化應用的配置、管理和監控等。目前已經有不少應用開發了其 Operator in Kubernetes,好比 MySQL、PostgreSQL、MongoDB 等等,ClickHouse 也啓動了 ClickHouse Operator [4] 項目,用於在 K8s 上部署和管理 ClickHouse。oop

可提供以下功能:

  • 建立 Replicated 集羣;
  • 管理用戶、配置文件;
  • 管理版本升級;
  • 管理數據持久化的存儲卷;
  • 導出 ClickHouse metrics 到 Prometheus;
  • 配置 Pod Deployment,如 Pod 模板,關聯規則等;
  • ……

經過這些功能,可讓 ClickHouse 集羣部署和管理過程再也不繁瑣,用戶只需關心如何建立以及管理 CR 便可。

| RadonDB ClickHouse

RadonDB ClickHouse[5] 是由 RadonDB 研發團隊研發並開源的,基於原生 ClickHouse 的高可用、雲原生集羣解決方案。RadonDB ClickHouse 實現了將 Operator 管理和 Helm 部署方案相結合,並支持在 Kubernetes 上輕便快速地建立和管理 ClickHouse 集羣。

簡單說,若是想在 Kubernetes 上使用 ClickHouse 集羣,那麼 RadonDB ClickHouse 是一個不錯的選擇。

結語

本文介紹了 Kubernetes 平臺上搭建 ClickHouse 集羣的幾種方案,以及 Operator 和 Helm 的基本概念等內容。

下期預告

下期【部署篇】咱們將 具體實踐 文中提到的幾種 ClickHouse + K8s 的部署方案。

盡請期待……

參考

[1]. ClickHouse:clickhouse.tech/

[2]. Kubernetes:kubernetes.io/

[3]. Helm:helm.sh/docs/

[4]. ClickHouse Operator:github.com/Altinity/cl…

[5]. RadonDB ClickHouse:github.com/radondb/rad…

關於 RadonDB

RadonDB開源社區 是一個面向雲原生、容器化的數據庫開源社區。爲數據庫技術愛好者提供圍繞主流開源數據庫(MySQL、PostgreSQL、Redis、MongoDB、ClickHouse 等)的技術分享平臺,並提供企業級 RadonDB 開源產品及服務。

目前 RadonDB 開源數據庫系列產品已被 光大銀行、浦發硅谷銀行、哈密銀行、泰康保險、太平保險、安盛保險、陽光保險、百年人壽、安吉物流、安暢物流、藍月亮、天財商龍、羅克佳華、升哲科技、無錫匯跑體育、北京電信、江蘇交通控股、四川航空、昆明航空、國控生物 等上千家企業及社區用戶採用。

RadonDB 可基於雲平臺與 Kubernetes 容器平臺交付,不只提供覆蓋多場景的數據庫產品解決方案,並且提供專業的集羣管理和自動化運維能力,主要功能特性包括:高可用主從切換、數據強一致性、讀寫分離、一鍵安裝部署、多維指標監控&告警、彈性擴容&縮容、橫向自由擴展、自動備份&恢復、同城多活、異地災備 等。RadonDB 僅需企業及社區用戶專一於業務層邏輯開發,無需關注集羣高可用選型、管理和運維等複雜問題,幫助企業及社區用戶大幅度提高業務開發與價值創新的效率!

GitHub:github.com/radondb

微信羣: 請搜索添加羣助手微信號 radondb

相關文章
相關標籤/搜索