共计 9121 个字符,预计需要花费 23 分钟才能阅读完成。
云原生的一直成熟让大量基础设施层的能力能够被业务利用间接应用,然而宽广的开发者们却苦于很高的上手门槛和学习老本,始终没有机会深刻理解云原生生态的工具体系。明天咱们将为你介绍一个好用的工具,它可能在离线环境帮你疾速装置 Kubernetes 集群,低门槛的上手业务利用部署,还能具备多集群、云资源等一系列高阶能力,而你只须要筹备一个可能运行 Docker 的零碎环境。
这个工具就是 VelaD[1],它能够帮忙开发者从零开始,在三分钟内疾速搭建基于 K3s 和 KubeVela 的云原生利用管制立体。
筹备工作
如果你应用的是 Mac 或者 Windows,须要筹备 Docker 环境,举荐应用 Docker Desktop[2]。
如果你应用的是 Linux,则无需筹备工作。
装置 VelaD
Mac/Linux
curl -fsSl https://static.kubevela.net/script/install-velad.sh | bash
Windows
应用 Powershell 运行
powershell -Command "iwr -useb https://static.kubevela.net/script/install-velad.ps1 | iex"
装置中须要你输出以后用户的明码来装置到 PATH 中,用以下命令确认你曾经装置胜利:
velad version
Core Version: v1.7.5VelaD Version: v1.7.5
一键装置 Kubernetes 和 KubeVela 管制立体
最简略的状况下,应用 VelaD 创立多集群管制立体,只须要一条命令:
velad install
整个装置过程是离线实现的,只须要 1 分钟左右便可装置实现,除了 Kubernetes 以外,还会装置 KubeVela 这个现代化的云原生利用交付和治理平台,帮你轻松上手云原生利用的部署。不仅如此,你还能够通过增加更多节点和数据库来保障集群数据的更高可用性(见“增加集群”大节)。另外,以上命令所创立的管制立体并不会主动将集群裸露给公网。如果你须要通过公网拜访你在近程服务器上创立的管制立体,参见近程拜访文档[3]。
该命令的背地是基于 K3s/K3d 技术为你在机器上创立一个单节点的 Kubernetes 集群,并在其中装置 KubeVela,及其命令行工具 vela。基于这个环境,你能够立即开始交付你的业务利用。
开箱即用的利用交付性能
开启 VelaUX
随着 velad install 的执行,广受欢迎的控制台插件 VelaUX 也一并在你的机器上就绪了。留神 velad install 执行完结后的提醒:
To enable dashboard, run `vela addon enable /Users/qiaozp/.vela/addons/velaux`
To access the cluster, set KUBECONFIG:
export KUBECONFIG=$(velad kubeconfig --name default --host)
复制装置胜利后的提醒命令,执行,启用 VelaUX 插件,命令中的门路在你的环境有所不同
Linux/Mac
export KUBECONFIG=$(velad kubeconfig --name default --host)
vela addon enable $HOME/.vela/addons/velaux
Windows
$env:PATH += ";$HOME\.vela\bin;"
$env:KUBECONFIG = $(velad kubeconfig --host)
vela addon enable $HOME\.vela\addons\velaux
VelaUX 是一个管制立体上运行的利用,你能够通过浏览器来拜访,将 VelaUX 的端口转发到本机来拜访:
vela port-forward addon-velaux -n vela-system 8080:80
应用高低方向键抉择 >local | velaux | velaux。接下来你就能在浏览器中拜访:http://127.0.0.1:8080/
初始管理员用户名和明码别离为 admin 和 VelaUX12345,登陆后你须要设置邮箱和明码。
部署利用
上面将带你体验应用 VelaUX 三步部署一个 WordPress 利用。Wordpress 是一个驰名的博客软件,能够通过 Helm Chart 部署。
第一步:在插件列表中启用 fluxcd 插件。fluxcd 插件为 KubeVela 提供了交付 Helm Chart 的能力。期待 fluxcd 插件就绪,状态转为 running。
Tips: KubeVela 的微内核设计,能够通过插件零碎一直裁减零碎能力,你能够借此继续驳回云原生畛域中最新的实际。目前 KubeVela 官网插件目录中含有 40+ 正式插件,30+ 试验插件,波及工作负载、云资源、可观测性、滚动公布等多个畛域,并且还在一直裁减中。
第二步:创立利用,填入名称 wordpress,抉择主组件类型为 helm,并绑定 default 环境。
Tips: 环境是 VelaUX 的重要概念,能够帮忙用户辨别例如开发、测试、生产等环境。
点击下一步,填写如下参数:
仓库地址:https://charts.bitnami.com/bitnami
Chart: wordpress
开启高级参数,给 Values 增加四个值:
service.type:ClusterIP
wordpressUsername:admin
wordpressPassword:wordpress_password
mariadb.db.password:mariadb_password
Tips: 参数的起源是 wordpress/README.md[4],你还能够抉择其它你须要的参数。以上参数保障咱们能够实现交付。
第三步:点击“部署”,你能够看到正在执行的工作流,咱们的利用没有额定配置工作流,所以 VelaUX 会生成一个默认工作流。点击左侧状态栏,能够追踪整个利用的拓扑构造。期待直至工作流实现。以及资源拓扑图中所有资源都达到衰弱状态。
Tips: 除了通过利用的拓扑构造察看全副底层资源的状态,你还能够在其它 Tab 中查看容器状态、事件、日志、资源指标等信息,如果开启了 cloudshell 插件,用户还能进入 pod shell 执行命令。整个过程受到 VelaUX 多租户权限体系的严格管控。你能够通过 KubeVela 文档 [5] 进一步理解权限治理、单点登录等问题。
Tips: 利用的工作流是 KubeVela 中对利用公布过程的一部分。提供了面向过程的灵活性,能够实现条件判断、暂停、状态期待、数据流传递、多环境灰度等简单操作。
拜访利用
接下来,你就能够拜访刚刚部署的利用了!运行如下命令,将 WordPress 的端口转发到本地。应用高低键和回车抉择 local | wordpress | wordpress:80
vela port-forward wordpress 8081:80
应用浏览器拜访:http://127.0.0.1:8081/login,应用刚刚填写的用户名和明码:admin/wordpress_password 登录为管理员。
咱们始终在应用端口转发来拜访利用,然而在理论状况中,你可能更多采纳其它更高效和平安的形式来裸露服务,然而在测试环境中,端口转发曾经足够好用。咱们在高级性能中将展现如何在跨环境差异化部署,并且不同环境甚至能够在不同集群中!因为多集群利用的部署在 KubeVela 中是一等公民。
回收利用
在 wordpress 利用的 Default 环境里,抉择左侧状态栏,能够回收利用,这一操作会回收下发的利用以及其下的工作负载。
增加插件,扩大你的利用管制立体
通过上文咱们晓得 KubeVela 通过插件来提供许多性能。VelaUX、fluxcd、dex 都是 KubeVela 优良的插件体系的一部分。插件帮忙咱们把“以利用为核心”的理念发扬光大,想要加强管制立体的利用交付、治理能力,只须要启用不同的插件即可。
- 须要疾速迭代并管制公布的危险?kruise-rollout 插件提供利用灰度公布能力,反对原生 Deployment/Helm Chart,详见文档[6]。
- 须要进步团队生产力和合作效率?backstage 插件帮忙将利用信息关联至开发者门户,详见 demo[7]。
- 须要更高资源弹性以及可用性?terraform 插件赋予平台交付云资源的能力,借助你须要的云资源实现利用构建。详见文档[8]。
- 须要把握利用运行状态?一组可观测插件集成了包含 Prometheus、Loki、Grafana 在内的可观测我的项目,提供全栈的申明式可观测能力,帮忙业务开发者灵便定制,轻松洞察各类简单的云原生工作负载。
KubeVela 插件仓库还蕴含了在工作流、网关、大数据、平安、混部等畛域的插件,更多来自社区的最佳实际正在以插件模式积淀下来。
高级性能
增加节点 – 扩容集群
本性能要求 VelaD 管制立体装置在 Linux 中
想要应用 VelaD 作为轻量级管制立体,单节点在退出更多插件时,或者在管制面部署过多利用时,可能达到计算资源下限,这时你能够向本来的管制立体增加 worker 节点来扩容集群。
1. 在你曾经运行过 velad install 的第一个节点上,运行
velad token
取得该集群的注册 Token。velad token
2. 在第二个节点上,通过如下命令向管制立体退出新的 worker 节点,从而组建多节点的管制立体。
velad join --master-ip <master-ip> --token <token> --worker-name <worker-name>
其中↓
<master-ip>:是 VelaD 管制立体第一个节点的 IP 地址,只有 worker 节点能够拜访该 IP 地址即可,例如二者在同一个内网环境内。须要 worker 通过公网拜访第一个节点时,请参见近程拜访文档 [9] 来创立第一个节点。(必填参数)
<token> 是在第一步中命令打印的后果:VelaD 管制立体的 Token。(必填参数)
<worker-name> 是新工作节点的名称。(可选参数)
3. 确认节点曾经退出,在任意一个节点上运行,失去两个条目即为退出胜利。
kubectl get node
4. 当你须要卸载节点时,只需在被卸载的节点上运行 velad uninstall 即可。
增加集群 – 跨多集群环境部署利用
上文提到 VelaD 能够作为多集群的管制立体,但到目前为止你可能会问,没有多集群的事啊?上面就会介绍如何应用 KubeVela 跨集群环境部署利用。咱们将持续采纳 VelaUX 作为演示平台。这次咱们的指标是将 wordpress 跨集群、跨环境部署,并且在生产环境中做一些自定义,具体来说:
- 在本地集群公布测试版本,人工确认无误后,将利用公布到生产集群。
- 在生产集群中将 wordpress 容器正本数进步到 2 个以进步可用性。
筹备集群
咱们须要一个子集群(绝对于 KubeVela 所在的管控集群)作为生产集群,如果你没有其它可用集群,能够通过 VelaD 能够在单台 MacOS 或者 Windows 机器上轻松创立另一个集群,运行如下命令:
Linux 平台怎么办?
VelaD 不反对在单台 Linux 机器中创立多个集群。如果你正在应用 Linux 并尝试 VelaD 作为多集群管制立体,能够在其它 Linux 机器中创立集群并持续。将集群裸露给其它机器的形式见近程拜访文档。
velad install --name cluster-worker --cluster-only
相比于之前的装置命令,该命令增加了名字参数(默认为 default)。因为该集群将作为子集群,咱们用 –cluster-onlyflag 跳过装置 KubeVela。应用如下命令来查看两个集群的状态:
velad status
冀望输入
Checking cluster status...
K3d images status:
✔ image rancher/k3s:v1.24.8-k3s1 ready
✔ image ghcr.io/k3d-io/k3d-tools:latest ready
✔ image ghcr.io/k3d-io/k3d-proxy:5.4.6 ready
Cluster(K3d) status:
✔ cluster [cluster-worker] ready
➤ kubevela status: not installed
✔ cluster [default] ready
✔ kubevela status: deployed
Checking KubeVela status...
Vela status:
✔ Vela CLI installed
✔ Vela CLI path: /usr/local/bin/vela
✔ VelaUX addon dir ready
✔ VelaUX addon dir path: /Users/qiaozp/.vela/addons/velaux
Tips:VelaD 创立的第二个集群是为了模仿实际上的生产集群,它实际上还是运行在本地的 Docker 环境的容器。
将集群退出管制立体的管控
应用曾经配套装置好的 vela 命令行工具,将子集群退出到管制立体的管控中来。
Linux/Mac
WORKER_KUBECONFIG=$(velad kubeconfig --name cluster-worker --internal)
vela cluster join $WORKER_KUBECONFIG --name=cluster-worker
Windows
$WORKER_KUBECONFIG = $(velad kubeconfig --name cluster-worker --internal)
vela cluster join $WORKER_KUBECONFIG --name=cluster-worker
冀望输入
子集群退出之后,你能够应用 vela cluster list 来查看被管控的所有集群。在 VelaUX 中也能查看到刚刚退出的集群。其中 local 集群是 KubeVela 所在的管制立体集群的默认名称,也就是你第一个创立的集群。vela cluster list 冀望输入
降级插件
新集群退出后,咱们须要回到插件页降级 fluxcd 插件,使其在新集群失效。
新增环境和交付指标
在左侧环境列表中新增 prod 环境,先后创立并增加两个交付指标
- local 集群,wordpress-test 命名空间
- cluster-worker 集群,wordpress-prod 命名空间
公布利用
在 wordpress 利用配置中
- 绑定 prod 环境
- 新增一个策略使其在生产环境的正本数为 2。这里要增加的策略是配置笼罩。首先抉择利用到的工作流和步骤,在组件中抉择
抉择 Add a component patch 来增加一个 Patch,抉择 wordpress 组件。因为 Properties 的 patch 十分自在,VelaUX 提供了黑屏编写 YAML 的形式凋谢该接口。抉择 Assign the default properties 并点击右上角绿框中的“切换黑屏”图标。在如图的 value 字段中,增加 replicaCount: 2 一行并最终创立策略。
点击上方的 prod 环境,VelaUX 以可视化的形式编辑利用的工作流。抉择工作流画板,在两个步骤之间增加 suspend 步骤并保留。这容许咱们在工作流中暂停并查看测试环境的利用状态,并人工确认持续工作流实现公布到生产环境。
点击部署并抉择 prod 环境的工作流、部署。
因为咱们增加的 suspend 步骤,在 local/wordpress-test 部署胜利后,咱们将看到状态 SUSPENDING 旁边提醒咱们是否持续工作流,假如此时咱们通过拜访测试环境:
- 确认利用工作失常,就能够批准继续执行。
- 或者发现测试环境的利用工作异样,抉择进行公布工作流进行排查。
这里咱们继续执行工作流。
工作流胜利执行后,通过状态栏能够查看到:咱们作为生产环境的 cluster-worker 集群中 wordpress-prod 有两个正在运行的 Pod 正本。验证了咱们对于利用策略的设置。
当然 KubeVela 有更多对多集群管控的能力,你能够在 KubeVela 文档 [10] 中找到更多用法。
高可用的管制立体
具备单个 master 节点的管制立体满足了一些应用需要,然而对于管制立体稳定性要求更高的用户,VelaD 还能帮忙搭建一个具备更高可用性的多集群管制立体。它由以下局部组成:
- 两个及以上的 server 节点
- 一个内部数据库
- 一个负载均衡器
Note:这些组件的要求:server 和负载平衡节点要求是 Linux 零碎,内部数据库能够采纳云服务或者自建数据库。
VelaD 尽量将全副的搭建过程变得简略且棘手,为了搭建具备高可用性的管制立体,你仅需运行几条命令:
1. 在第一个 server 节点上运行
velad install --bind-ip=<LB_IP> --database-endpoint=<DB_ENNDPOINT> --token=<TOKEN> --node-ip=<IP>
其中 是负载平衡节点的 IP 地址。是内部数据库的连贯串,其格局可见数据库格局文档[11]。
2. 在其余 server 节点运行简直雷同的命令,额定加上 –cluster-only 参数,这意味着仅将节点作为 master 退出集群,跳过装置 KubeVela,因为在第一个 server 节点运行命令时,曾经装置了 KubeVela。
velad install --bind-ip=<LB_IP> --database-endpoint=<DB_ENNDPOINT>\
--token=<TOKEN> \
--cluster-only
--node-ip=<IP>
3. 通过在任意一个节点上运行配置负载平衡的向导,取得负载平衡的配置命令。
velad load-balancer wizard
To setup load-balancer, run the following command on node acts as load-balancer:
velad load-balancer install --http-port 32196 --https-port 30297 --host=<IP1>,<IP2>
4. 在负载平衡节点上,将上述向导输入的第二行复制过去并运行。
velad load-balancer install --http-port 32355 --https-port 30421 --host=172.19.0.5
Tips:其中 IP1 等为 server 节点的 IP 地址,load-balancer install 命令背地帮忙用户设置了一个转发到 Server 的 Nginx 服务。
5. 在任何一个 server 节点打印 kubeconfig 的地位,并将该文件复制到任何能够拜访到负载平衡节点的地位(例如你的笔记本上)。其中 –external 示意该 kubeconfig 是从内部拜访集群所须要的。
velad kubeconfig --external
Boom!你能够通过这个 kubeconfig 拜访和治理这个管制立体了!任何一个 server 节点故障都不会影响管制立体的可用性。
结语
以上就是本次的全部内容,感激你的浏览和尝试。云原生的逐步成熟涌现出了大量开箱即用的生态性能,然而宽广开发者群体往往被云原生简单的生态图景劝退,明天咱们介绍了 VelaD 我的项目,冀望以最简略、最快的形式帮忙你上手云原生并立即开始交付利用。随着你的须要,VelaD 能一直进步管制立体的容量和可用性。你还能通过向管制面注册子集群的形式,将利用部署到更多你须要的地位。
其背地的 KubeVela 我的项目在开箱即用的利用交付性能的根底上,一直以插件模式将云原生畛域的最佳实际带给你,让你以更快更简略的形式加强本人的利用交付过程。官网插件仓库曾经领有了囊括变体工作负载、云资源、可观测性、滚动公布等多个畛域的 70+ 插件。目前 KubeVela 的插件生态还在疾速成长中,欢送你来社区提出需要或做出奉献。
近期 KubeVela 行将公布 v1.8 版本,带来集群资源一键纳管性能,帮忙你无痛迁徙遗留零碎。还有对大规模利用场景的压测报告、性能优化以及控制器分片计划,帮忙你轻松面对业务规模增长的挑战。
写在最初
对于 VelaD,对于 KubeVela,你还有什么需要或者疑难?欢送通过如下资料理解更多 VelaD 和 KubeVela 的我的项目细节:
- VelaD 代码库:https://github.com/kubevela/velad 欢送 Star/Watch/Fork!
- KubeVela 代码库:https://github.com/kubevela/kubevela 欢送 Star/Watch/Fork!
- 我的项目官方主页和文档:http://kubevela.io
相干链接:
[1] VelaDhttps://github.com/kubevela/velad
[2] Docker Desktophttps://www.docker.com/products/docker-desktop/
[3] 近程拜访文档 https://github.com/kubevela/velad/blob/main/docs/05.expose-cluster.md
[4] wordpress/README.mdhttps://github.com/helm/charts/blob/master/stable/wordpress/README.md
[5] KubeVela 文档 https://kubevela.io/docs/how-to/dashboard/user/
[6] 文档 https://kubevela.io/zh/docs/end-user/traits/rollout
[7] demohttps://www.bilibili.com/video/BV1v84y1a75x/?vd_source=d7602c…
[8] 文档 https://kubevela.io/zh/docs/tutorials/consume-cloud-services
[9] 近程拜访文档 https://github.com/kubevela/velad/blob/main/docs/05.expose-cluster.md
[10] KubeVela 文档 https://kubevela.io/zh/docs/case-studies/multi-cluster
[11] 数据库格局文档 https://github.com/kubevela/velad/blob/main/docs/db-connect-format.md
作者:乔中沛
原文链接
本文为阿里云原创内容,未经容许不得转载。