访问应用
接下来,你就可以访问刚刚部署的应用了!运行如下命令,将 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。
- 需要提高团队生产力和协作效率?backstage 插件帮助将应用信息关联至开发者门户。
- 需要更高资源弹性以及可用性?terraform 插件赋予平台交付云资源的能力,借助你需要的云资源完成应用构建。
- 需要掌握应用运行状态?一组可观测插件集成了包括 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>
其中↓
:是 VelaD 控制平面第一个节点的 IP 地址,只要 worker 节点可以访问该 IP 地址即可,例如二者在同一个内网环境内。需要 worker 通过公网访问第一个节点时,请参见远程访问文档来创建第一个节点。(必填参数)
是在第一步中命令打印的结果:VelaD 控制平面的 Token。(必填参数)
是新工作节点的名称。(可选参数)
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 插件,使其在新集群生效。