基于Kubernetes集群部署
本文演示了如何在 Kubernetes(简称k8s) 集群中部署 ByConity 集群。
环境配置
git clone git@github.com:ByConity/byconity-deploy.git
cd byconity-deploy
部署步骤
- 获取Kubernetes集群
可以部署或购买Kubernetes集群,参考官方文档
- 准备存储
为了获得最佳的 TCO 和性能,本地磁盘最好与 ByConity server 和 worker 一起使用。可以使用OpenEBS local PV 等存储. 注意:ByConity server 和 worker 的存储仅用于磁盘缓存,您可以随时删除它们
- 配置你的helm文件
从 ./chart/byconity/values.yaml 复制并修改一些字段,例如:
存储类名
时区
服务器/工人的副本
hdfs存储配置
如果想使用自己的HDFS集群,需将hdfs.enabled设置为false,并在values.yaml中覆盖HDFS的配置
byconity:
hdfs_address: hdfs://your own hdfs:port
hdfs:
enabled: false
fdb的配置
如果您想使用自己的FDB,请将fdb.enabled和fdb-operator.enabled都设置为false。您可以参考values_use_existing_fdb.yaml进行配置
byconity:
hdfs_address: hdfs://byconity-hdfs-namenodes:8020 # can using your own hdfs
use_existing_fdb: true
fdb_cluster_file: your fdb-cluster-file content. #byconity_fdb:Is0hBgl6iICdHuspBmhAODmD5WISXKzI@192.168.224.150:4501,192.168.226.83:4501,192.168.228.152:4501
fdb:
enabled: false
fdb-operator:
enabled: false
- 初始化 ByConity 集群
# Install with fdb CRD first
helm upgrade --install --create-namespace --namespace byconity -f ./your/custom/values.yaml byconity ./chart/byconity --set fdb.enabled=false
# Install with fdb cluster
helm upgrade --install --create-namespace --namespace byconity -f ./your/custom/values.yaml byconity ./chart/byconity
查看并等待所有 Pod 准备就绪
kubectl -n byconity get po
安装成功,开始体验!
$ kubectl -n byconity exec -it sts/byconity-server -- bash
root@byconity-server-0:/# clickhouse client
172.16.1.1 :)
- 删除ByConity集群
helm uninstall --namespace byconity byconity
- 测试
可以运行一些简单的查询语句来测试下
CREATE DATABASE IF NOT EXISTS test;
USE test;
DROP TABLE IF EXISTS test.lc;
CREATE TABLE test.lc (b LowCardinality(String)) engine=CnchMergeTree ORDER BY b;
INSERT INTO test.lc SELECT '0123456789' FROM numbers(100000000);
SELECT count(), b FROM test.lc group by b;
DROP TABLE IF EXISTS test.lc;
DROP DATABASE test;