跳到主要内容
版本:1.0.x

基于Kubernetes集群部署

本文演示了如何在 Kubernetes(简称k8s) 集群中部署 ByConity 集群。

环境配置

  • 本地安装Kubernetes命令行工具 kubectl,用于管理Kubernetes集群
  • 本地安装用于管理Kubernetes应用程序的包管理工具 helm
  • 本地克隆 bconity-deploy 代码
git clone git@github.com:ByConity/byconity-deploy.git
cd byconity-deploy

部署步骤

  1. 获取Kubernetes集群

可以部署或购买Kubernetes集群,参考官方文档

  1. 准备存储

为了获得最佳的 TCO 和性能,本地磁盘最好与 ByConity server 和 worker 一起使用。可以使用OpenEBS local PV 等存储. 注意:ByConity server 和 worker 的存储仅用于磁盘缓存,您可以随时删除它们

  1. 配置你的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
  1. 初始化 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 :)
  1. 删除ByConity集群
helm uninstall --namespace byconity byconity
  1. 测试

可以运行一些简单的查询语句来测试下

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;