当前位置: 代码迷 >> 综合 >> 容器化 | ClickHouse on K8s 部署篇【建议收藏】
  详细解决方案

容器化 | ClickHouse on K8s 部署篇【建议收藏】

热度:9   发布时间:2023-12-06 15:17:57.0

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

目前从事 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

注意&#

  相关解决方案