首页 > 其他分享 >『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署

『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署

时间:2023-12-18 15:09:00浏览次数:39  
标签:kubectl kind Kubernetes AWS 集群 EC2 服务器 ByConity


  1. 前言

亚马逊是全球最大的在线零售商和云计算服务提供商。AWS云服务器在全球范围内都备受推崇,被众多业内人士誉为“云计算服务的行业标准”。在国内,亚马逊AWS也以其卓越的性能和服务满足了众多用户的需求,拥有着较高的市场份额和竞争力。同时也是出海用户的首选云服务。

作为一款主流的云服务提供商,亚马逊云服务器EC2在系统安全性和稳定性上表现十分出色。

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

下面我们通过详细图文内容介绍如何在亚马逊EC2云服务器上上部署并运行ByConity

  1. 购买并使用亚马逊EC2云服务器示例

2.1 EC2实例购买教程

因为AWS为国外云服务提供商,和目前国内主流的云服务提供商的购买流程略有差别,所以在此一并介绍如何购买并使用AWS云服务器EC2实例

进入AWS官网: https://aws.amazon.com/cn/


『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署_aws

点击左上角登录,进入控制台,然后在控制台首页访问EC2


『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署_云计算_02

在EC2控制台可以看到我们已经购买的云服务器和一些相关信息


『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署_AWS_03

若没有购买相关Ec2实例,若用户为初次使用亚马逊云服务相关资源,则可以免费获得一年的Ec2实例资源使用权限。

下面将展示如何领取或者购买EC2实例资源

点击启动实例

在启动之前需要选择服务器所在区域,区域选择在控制台左上角


『亚马逊云科技产品测评』AWS云服务器EC2实例实现ByConity快速部署_服务器_04

关于镜像选择,大家可以根据自己的实际需求选择合适的镜像,这里我选择的是Redhat,然后选择符合买条件的免费套餐,这样我们就可以免费获取相关资源,当然,免费资源的规格类型为1c-1g,如果需要更高规格服务器,则需要付费购买。

选择完操作系统后,我们需要选择密钥对来进行后续的登录操作,若没有密钥对,则需要手动创建新的密钥对

创建好新的秘钥对后需要将其pem文件下载到本地,方便后续进行远程ssh登录。

AWS的云服务器EC2的创建阶段和国内其他云服务器厂商的购买流程配置上也有些区别,比如,无法在初始化时直接通过root密码登录,需要通过密钥对登录后设置root密码

在网络配置阶段,选择启用公网IP,同时根据自己的业务需求设置不同的安全组

存储则需要根据业务需求进行选择,我这里选择40GB(后续可以更改)

全部填写完后,选择启动实例

2.2 EC2实例初始化配置

在购买完EC2实例后,我们返回控制台进行查看,可以看到刚才购买的云服务器正在初始化,等待大约5分钟后会初始化完成

点击进去查看详情

可以看到此云服务器的详细配置信息

在登录之前,需要确认安全组已经放通相关端口

2.3 远程登录EC2服务器实例

每个人的喜好不太一样,常用的shell登录终端有很多,这里我使用的是Finalshell

Finalshell是一款强大的终端工具,它集成了SSH客户端、X服务器和Unix命令集工具箱。在Windows操作系统下,MobaXterm可以帮助用户轻松地连接并操作Linux服务器。

Finalshell具有以下特点:

集成了SSH客户端:通过内嵌SSH客户端,可以快速建立与Linux服务器的安全连接,实现远程登录和管理。

支持X服务器:集成了X服务器,可以在Windows上运行Unix/Linux环境,并支持图形界面应用程序。

提供Unix命令集:集成了Unix命令集(GNU/Cygwin),用户可以在Windows上运行大多数Linux命令,实现高效的终端操作。

多终端视窗:支持开启多个终端视窗,可以同时连接多个Linux服务器,并进行灵活的终端管理。

可扩展性强:可以通过集成插件来扩展功能,例如运行Gcc、Perl、Curl、Tcl/Tk/Expect等程序。

免费开源:分为免费开源版和收费专业版,用户可以免费使用开源版,并根据需求选择专业版以获得更多的功能和更好的技术支持。

新建ssh登录,填写EC2实例的ip和用户名并通过刚才设置的密钥对进行登录

登录成功

  1. 配置部署

3.1 资源准备

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

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

整体云资源部署在亚马逊云服务器

按照上述配置要求和 目录2的操购买不同规格的云服务

3.2 服务器基础配置

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

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

部署和管理应用程序:kubectl可以使用YAML或JSON文件定义和创建Kubernetes资源对象,例如部署、服务、Pod、副本集、配置映射等。可以使用kubectl创建、更新、删除和查看这些资源,以及监控其状态和日志。

扩展和管理集群:kubectl可以通过命令行管理Kubernetes集群的各个组件,例如节点、命名空间、存储卷、服务账户等。可以使用kubectl扩展集群的规模、添加或删除节点,以及执行与集群管理相关的操作。

调试和故障排除:kubectl提供了各种命令和选项,用于诊断和调试Kubernetes集群中的问题。可以查看Pod的日志、执行进入容器的命令、获取集群事件等。

资源监控和调整: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 成功地访问到集群。

3.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

3.2.3 安装kind和Docker

3.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

3.2.3.2 Docker安装

安装docker-ce

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

通过systemctl启动服务

systemctl start docker

4 .本地 Kubernetes 集群

4.1 使用 Kind 配置本地 Kubernetes 集群

将代码保存在本地

git clone [email protected]:ByConity/byconity-deploy.git
cd byconity-deploy

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

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

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

kubectl cluster-info

4.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

等到所有 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

标签:kubectl,kind,Kubernetes,AWS,集群,EC2,服务器,ByConity
From: https://blog.51cto.com/u_15070902/8873681

相关文章

  • AWS - Sample Go code to use secrets
     //Usethiscodesnippetinyourapp.//Ifyouneedmoreinformationaboutconfigurationsorimplementingthesamplecode,visittheAWSdocs://https://aws.github.io/aws-sdk-go-v2/docs/getting-started/import("context""......
  • AWS CloudWatch监控
    基于前一篇post,测试如何在AWS上进行日志监控https://www.cnblogs.com/Andy1982/p/17894837.html在app.js中加入console.info('helloworld');重新执行serverlessdeploy找到APIGateway->找到对应的资源->菜单项:阶段->URL调用测试:https://l9dhk7bna8.execute-api.cn-......
  • Jenkins 构建 AWS Fargate 服务的自动化更新控制
    引言在云原生应用开发中,AWSFargate是一种无服务器容器编排服务,能够简化容器的部署和管理。结合Jenkins,我们可以实现对AWSFargate服务的自动构建和更新控制。本文将介绍如何通过Python脚本实现Fargate服务的自动构建和部署,并通过DingDing机器人发送通知。Jenkins构建A......
  • AWS云服务器EC2实例实现ByConity快速部署
    1.前言亚马逊是全球最大的在线零售商和云计算服务提供商。AWS云服务器在全球范围内都备受推崇,被众多业内人士誉为“云计算服务的行业标准”。在国内,亚马逊AWS也以其卓越的性能和服务满足了众多用户的需求,拥有着较高的市场份额和竞争力。同时也是出海用户的首选云服务。作为一款主......
  • 宣布全面推出适用于 macOS 的 Amazon EC2 M2 Pro Mac 实例
    即日起,AmazonElasticComputeCloud(AmazonEC2)M2ProMac实例现已全面推出(GA)。在为Apple平台(例如iOS、macOS、iPadOS、tvOS、watchOS、visionOS和Safari)构建和测试应用程序时,这些实例的性能比现有的M1Mac实例提高了35%。M2ProMac实例由AmazonNitroSystem......
  • AWS Lambda
    创建访问密钥copyKey和Secret,key见下图,secret只有在创建时可见创建Nodejs项目app.jsexports.handler=async(event,context)=>{constresponse={statusCode:200,headers:{'Content-Type':'text/plain',},......
  • 使用 AWS Go SDK 读取审计日志(CloudTrail)
    背景公司的海外业务需要将云上的操作读取到内部的日志文件中,永久保存,供内部审计使用。由于之前没有用过AWS相关的SDK,在使用过程中也遇到一些困难,这里记录一下,并且总结一下过程。代码快速开始代码参考地址:https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/go/examp......
  • 使用AWS CLI精通AWS ECS:部署和管理的综合指南
    亚马逊弹性容器服务(AmazonElasticContainerService,ECS)为部署和管理容器化应用提供了强大的平台。在本指南中,我们将通过AWS命令行界面(CLI)探讨如何无缝地执行常见的ECS任务。无论您是初学者还是经验丰富的用户,本逐步教程都将帮助您轻松地导航ECS集群、任务和服务。先决条件在我们......
  • ChinaDX:中国联通AWS跨境直连服务的技术实现与应用前景
    随着全球化的推进和数字化浪潮的兴起,企业对于云计算的需求日益旺盛。为了满足企业在跨国业务中的云服务需求,中国联通推出了AWS跨境直连服务(ChinaDX),为企业客户提供快速连接、高性能、安全、灵活的AWS云互连服务。一、ChinaDX技术实现高速稳定的网络连接:ChinaDX通过中国联通全球覆盖......
  • aws场景安装fail2ban
    ACCEPTEDANSWERAmazonLinux2023usesPython3.9bydefault,andsomeoftheoldpythonversionfeatureareabolishedinPython3.9,soyouneedtousethelatestFail2bansourcecodetoinstall.Installationdependencypackage2to3:yuminstall2to3-y......