作者:苏厚镇 青云科技数据库研发工程师
目前从事 RadonDB ClickHouse 相关工作,热衷于研究数据库内核。
延续上篇《容器化 ClickHouse on K8s 基本概念解析篇》,可以了解到 Operator 提供简便管理 ClickHouse 集群功能,Helm 提供便捷部署集群功能。
本篇将以部署 RadonDB ClickHouse[1] 作为示例。在同样选用 Operator 的条件下,比较Kubectl 和 Helm 两种方式在 K8s 上部署 ClickHouse 集群的便捷性。并简要介绍如何在 K8s 上通过 Operator 轻便快速地管理 ClickHouse 集群。
| 使用 Kubectl + Operator 部署
前置条件
- 已安装 Kubernetes 集群。
部署步骤
1、部署 RadonDB ClickHouse Operator
$ kubectl apply -f https://github.com/radondb/radondb-clickhouse-kubernetes/clickhouse-operator-install.yaml
注意:若需 Operator 监控所有的 Kubernetes namespace,则需将其部署在 kube-system namespace 下。否则只会监控部署到的 namespace。
2、编写 CR 的部署文件
以下 yaml 文件描述了应用 RadonDB ClickHouse Operator 安装两分片两副本集群的 ClickHouse 的配置规范。
apiVersion: "clickhouse.radondb.com/v1"
kind: "ClickHouseInstallation" # 应用 Operator 创建集群
metadata:name: "ClickHouse"
spec:defaults:templates: # 磁盘挂载dataVolumeClaimTemplate: datalogVolumeClaimTemplate: dataconfiguration:clusters: # 集群节点描述,三分片两副本- name: "replicas"layout:shardsCount: 2replicasCount: 2templates:volumeClaimTemplates: # 磁盘信息描述- name: datareclaimPolicy: Retainspec:accessModes:- ReadWriteOnceresources:requests:storage: 10Gi
3、使用 Kubectl 部署
以 test 名称空间为例:
$ kubectl -n test apply -f hello-kubernetes.yaml
clickhouseinstallation.clickhouse.radondb.com/ClickHouse created
注意&#