乐趣区

关于mysql:容器化-ClickHouse-on-K8s-基础篇

作者:苏厚镇 青云科技数据库研发工程师

目前从事 RadonDB ClickHouse 相干工作,热衷于钻研数据库内核。

ClickHouse[1] 是一款用于联机剖析(OLAP)的列式数据库管理系统(DBMS)。由号称“俄罗斯 Google”的 Yandex 公司开发,并于 2016 年开源,近年在计算引擎技术畛域受到越来越多的关注,算是数据库后起之秀。

Kubernetes[2] 是 Google 公司于 2014 年 6 月开源的一款容器集群管理系统。实用于治理云平台多个主机的容器化利用,旨在让部署容器化的利用简略并且高效,致力成为跨主机集群的主动部署、扩大以及运行应用程序容器的平台。

借助 K8s 和容器化技术,咱们不仅能够使得利用的部署和治理更加简略高效、进步硬件资源利用率等,还能够实现健康检查和自修复、主动扩缩容、负载平衡等高级性能。

那么,如果黑马数据库 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。

可提供如下性能:

  • 创立 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:https://clickhouse.tech/

[2]. Kubernetes:https://kubernetes.io/

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

[4]. ClickHouse Operator:https://github.com/Altinity/clickhouse-operator/tree/master/docs

[5]. RadonDB ClickHouse:https://github.com/radondb/radondb-clickhouse-kubernetes

对于 RadonDB

RadonDB 开源社区 是一个面向云原生、容器化的数据库开源社区。为数据库技术爱好者提供围绕支流开源数据库(MySQL、PostgreSQL、Redis、MongoDB、ClickHouse 等)的技术分享平台,并提供企业级 RadonDB 开源产品及服务。

目前 RadonDB 开源数据库系列产品已被 光大银行、浦发硅谷银行、哈密银行、泰康保险、太平保险、安盛保险、阳光保险、百年人寿、安吉物流、安畅物流、蓝月亮、天财商龙、罗克佳华、升哲科技、无锡汇跑体育、北京电信、江苏交通控股、四川航空、昆明航空、国控生物 等上千家企业及社区用户采纳。

RadonDB 可基于云平台与 Kubernetes 容器平台交付,不仅提供笼罩多场景的数据库产品解决方案,而且提供业余的集群治理和自动化运维能力,次要性能个性包含:高可用主从切换、数据强一致性、读写拆散、一键装置部署、多维指标监控 & 告警、弹性扩容 & 缩容、横向自在扩大、主动备份 & 复原、同城多活、异地灾备 等。RadonDB 仅需企业及社区用户专一于业务层逻辑开发,无需关注集群高可用选型、治理和运维等简单问题,帮忙企业及社区用户大幅度晋升业务开发与价值翻新的效率!

GitHub:https://github.com/radondb

微信群:请搜寻增加群助手微信号 radondb

退出移动版