Kubenetes集群云上安装部署ByConity

2023-10-24 15:50

本文主要是介绍Kubenetes集群云上安装部署ByConity,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一文搞懂ByConity 快速部署

前言

ByConity 是字节跳动面向现代数据栈的一款开源数仓系统,应用了大量数据库成熟技术,如列存引擎,MPP 执行,智能查询优化,向量化执行,Codegen,indexing,数据压缩,适合用于 Online Analytical Processing(OLAP) 场景和轻载数仓的场景,包括但不限于交互式分析、实时 APP 监控、流数据处理和分析等。

下面我们通过详细图文内容介绍如何在公网上部署并运行ByConity

配置部署

2.1 资源准备

根据官方建议,在测试环境中

使用操作系统版本: Centos8.2并使用公网yum源

硬件规格中,Worker 和 Server 的本地磁盘主要用于存储写入时的临时数据和日志文件,同时 Worker 的本地磁盘中还会存储数据的 Cache,因此磁盘的大小需要根据配置的 DiskCache 大小及写入的数据量来确定。

我的部署见下图,为满足各个组件性能要求

组件名称CPU内存硬盘网络实例数
TSO11G5G千兆网卡1
Server832G100G千兆网卡1
Worker416G110G千兆网卡1
DaemonManager12G40G千兆网卡1
ResourceManager12G40G千兆网卡1

整体云资源部署在华为云

image-20230925000358484

2.2 服务器基础配置

2.2.1 在本地环境中安装和设置 kubectl

kubectl是Kubernetes命令行工具,可以通过命令行界面或脚本与Kubernetes集群进行通信,并执行各种操作,包括:

  1. 部署和管理应用程序:kubectl可以使用YAML或JSON文件定义和创建Kubernetes资源对象,例如部署、服务、Pod、副本集、配置映射等。可以使用kubectl创建、更新、删除和查看这些资源,以及监控其状态和日志。
  2. 扩展和管理集群:kubectl可以通过命令行管理Kubernetes集群的各个组件,例如节点、命名空间、存储卷、服务账户等。可以使用kubectl扩展集群的规模、添加或删除节点,以及执行与集群管理相关的操作。
  3. 调试和故障排除:kubectl提供了各种命令和选项,用于诊断和调试Kubernetes集群中的问题。可以查看Pod的日志、执行进入容器的命令、获取集群事件等。
  4. 资源监控和调整:kubectl可以用于查看Kubernetes集群和资源的状态、监控资源使用情况、扩展或缩减资源的副本数量等。

kubectl提供了强大的功能和灵活性,能够有效地管理和操作Kubernetes集群。

用以下命令下载最新发行版:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

下载 kubectl 校验和文件:

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

基于校验和文件,验证 kubectl 的可执行文件:

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

验证通过时,输出为:

kubectl: OK

验证失败时,sha256 将以非零值退出,并打印如下输出:

kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

安装 kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

执行测试,以保障安装的版本是最新的:

kubectl version --client

为了让 kubectl 能发现并访问 Kubernetes 集群,你需要一个 kubeconfig 文件, 该文件在 kube-up.sh 创建集群时,或成功部署一个 Minikube 集群时,均会自动生成。 通常,kubectl 的配置信息存放于文件 ~/.kube/config 中。

通过获取集群状态的方法,检查是否已恰当地配置了 kubectl:

kubectl cluster-info

如果返回一个 URL,则意味着 kubectl 成功地访问到集群。

2.2.2 在本地环境中安装 helm

Helm使用称为chart的包装格式。chart是描述相关的一组Kubernetes资源的文件集合。单个chart可能用于部署简单的东西,比如memcached pod,或者一些复杂的东西,比如完整的具有HTTP服务,数据库,缓存等的Web应用程序堆栈。

chart通过创建为特定目录树的文件,将它们打包到版本化的压缩包,然后进行部署。

Helm有安装脚本可以自动拉取最新的Helm版本并在 本地安装

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh./get_helm.sh

如果想直接执行安装,运行

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
2.2.3 安装kind和Docker
2.2.3.1 kind安装

Kind,即Kubernetes-in-docker的简写,是一个使用docker容器作为“节点”实现部署K8S集群环境的工具。Kind工具主要用于Kubernetes本身的测试,目前很多需要部署到Kubernetes环境测试的项目在CI流程中,都会选择用Kind快速创建一个Kubernetes环境,然后运行相关的测试用例,之后删除即可。

输入下面命令安装kind

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.9.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind
2.2.3.2 Docker安装

安装docker-ce

yum clean all yum makecache fastyum -y install docker-ce

通过systemctl启动服务

systemctl start docker

3 .本地 Kubernetes 集群

3.1 使用 Kind 配置本地 Kubernetes 集群

将代码保存在本地

git clone git@github.com:ByConity/byconity-deploy.git
cd byconity-deploy

image-20230925011431614

创建一个 1-control-plane、3-worker 的 Kubernetes 集群。.

kind create cluster --config examples/kind/kind-byconity.yaml

image-20230925011741975

测试以确保本地 kind 集群已准备就绪:

kubectl cluster-info

image-20230925011803850

3.2 初始化 Byconity 演示集群

# Install with fdb CRD first
helm upgrade --install --create-namespace --namespace byconity -f ./examples/kind/values-kind.yaml byconity ./chart/byconity --set fdb.enabled=false# Install with fdb cluster
helm upgrade --install --create-namespace --namespace byconity -f ./examples/kind/values-kind.yaml byconity ./chart/byconity

image-20230925011935150

等到所有 Pod 准备就绪。

kubectl -n byconity get po

image-20230925012009282

进行测试

kubectl -n byconity exec -it sts/byconity-server -- bash
root@byconity-server-0:/# clickhouse client172.16.1.1 :)

执行sql

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;

4. ByConity评价

ByConity是基于ClickHouse构建的一个为现代云架构变化设计的数据仓库。它采用云原生架构设计,满足数据仓库用户对灵活扩展、读写分离、资源隔离和强数据一致性的需求。同时,它提供了卓越的查询和写入性能。采用大量成熟的OLAP技术,如列存储引擎、MPP执行、智能查询优化、向量化执行、Codegen、索引和数据压缩;同时也为云场景和存储计算分离架构做了特殊技术创新。

整体使用部署方式有多种,满足不同用户使用,部署相对不是很复杂,值得推荐使用

这篇关于Kubenetes集群云上安装部署ByConity的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/276231

相关文章

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装