招商银行云平台开发团队自 2021 年开始接触 KubeVela,并摸索 KubeVela 在招商银行云平台的落地实际,借此晋升云原生利用交付与治理能力。同时因为金融保险行业的特殊性,网络安全管控措施绝对严格,行内网络无奈间接拉取 Docker Hub 镜像,同时行内临时没有可用的 Helm 镜像源。因而,要想实现 KubeVela 在行内公有环境的落地,必须进行齐全的离线部署。
本文将以 KubeVela v1.2.5 版本为例,介绍招商银行 KubeVela 的离线部署实际,来帮忙其余用户在离线环境中更便捷的实现 KubeVela 的部署。
KubeVela 离线部署计划
咱们将 KubeVela 的离线部署次要分为三局部,别离是 Vela Cli、Vela Core 以及 Addon 的离线部署,每一部分次要波及到相干 docker 镜像的加载及 Helm 的 repackage,通过该离线部署计划,可能大大放慢 KubeVela 在离线环境的部署。
在离线部署前请确保 Kubernetes 集群版本 >= v1.19 && < v1.22,KubeVela 管制立体依赖 Kubernetes,能够搁置在任何托管 Kubernetes 作为底座的产品或自建 Kubernetes 集群中。同时你也能够应用 kind 或 minikube 在本地部署、测试 KubeVela。
Vela Cli 离线部署
• 首先,须要通过 KubeVela 的公布日志 [1] 下载你所需版本的 vela 二进制文件
• 解压二进制文件,并且在 $PATH
中配置相应的环境变量
• 解压二进制文件
• tar -zxvf vela-v1.2.5-linux-amd64.tar.gz
• mv ./linux-amd64/vela /usr/local/bin/vela
• 设置环境变量
• vi /etc/profile
• export PATH="$PATH:/usr/local/bin"
• source /etc/profile
• 通过 vela version
验证 Vela Cli 的装置,并查看输入
CLI Version: v1.2.5
Core Version:
GitRevision: git-ef80b66
GolangVersion: go1.17.7
• 至此,Vela Cli 曾经离线部署实现!
Vela Core 离线部署
• 离线部署 Vela Core 之前,首先须要在离线环境中装置 Helm[2],并且 Helm 的版本须要满足v3.2.0+
• 筹备 docker 镜像,Vela Core 的部署次要波及 5 个镜像,你须要首先拜访互联网从 Docker Hub 下载相应镜像,之后再 load 到离线环境
• 从 Docker Hub 拉取镜像
• docker pull oamdev/vela-core:v1.2.5
• docker pull oamdev/cluster-gateway:v1.1.7
• docker pull oamdev/kube-webhook-certgen:v2.3
• docker pull oamdev/alpine-k8s:1.18.2
• docker pull oamdev/hello-world:v1
• 将镜像保留到本地磁盘
• docker save -o vela-core.tar oamdev/vela-core:v1.2.5
• docker save -o cluster-gateway.tar oamdev/cluster-gateway:v1.1.7
• docker save -o kube-webhook-certgen.tar oamdev/kube-webhook-certgen:v2.3
• docker save -o alpine-k8s.tar oamdev/alpine-k8s:1.18.2
• docker save -o hello-world.tar oamdev/hello-world:v1
• 在公有环境中从新加载镜像
• docker load vela-core.tar
• docker load cluster-gateway.tar
• docker load kube-webhook-certgen.tar
• docker load alpine-k8s.tar
• docker load hello-world.tar
• 下载 KubeVela 源码[3],拷贝到离线环境中,并应用 Helm 从新打包
• 将 KubeVela 源码从新打 chart 包,并离线装置 chart 包到管制集群
• helm package kubevela/charts/vela-core --destination kubevela/charts
• helm install --create-namespace -n vela-system kubevela kubevela/charts/vela-core-0.1.0.tgz --wait
• 查看输入
KubeVela control plane has been successfully set up on your cluster.
• 至此,Vela Core 曾经离线部署实现!
Addon 离线部署
• 首先下载 Catalog 源码 [4] 并拷贝到公有环境中
• 这里将以 VelaUX 为例介绍 Addon 的离线部署,首先筹备 docker 镜像,VelaUX 次要波及 2 个镜像,须要首先拜访互联网从 Docker Hub 下载相应镜像,之后再 load 到离线环境
• 从 Docker Hub 拉取镜像
• docker pull oamdev/vela-apiserver:v1.2.5
• docker pull oamdev/velaux:v1.2.5
• 将镜像保留到本地磁盘
• docker save -o vela-apiserver.tar oamdev/vela-apiserver:v1.2.5
• docker save -o velaux.tar oamdev/velaux:v1.2.5
• 在公有环境中从新加载镜像
• docker load vela-apiserver.tar
• docker load velaux.tar
• 装置 VelaUX
• 通过 Vela Cli 装置 VelaUX
• vela addon enable catalog-master/addons/velaux
• 查看输入
Addon: velaux enabled Successfully.
• 若有集群中装置了 route Controller 或 Nginx Ingress Controller,且有可用域名,你能够部署内部路由拜访 VelaUX,这里以 openshift route 为例,也能够抉择 ingress
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: velaux-route
namespace: vela-system
spec:
host: velaux.xxx.xxx.cn
port:
targetPort: 80
to:
kind: Service
name: velaux
weight: 100
wildcardPolicy: None
• 查看装置
curl -I -m 10 -o /dev/null -s -w %{http_code} http://velaux.xxx.xxx.cn/applications
• 至此,VelaUX 曾经离线部署实现!同时,对于其余类型 Addon 的离线部署,只须要去 Catalog 源码的对应目录确定所需镜像,并反复以上操作即可实现相应 Addon 的离线部署
总结
在离线部署的过程中,咱们也尝试将 Vela Core 和 Addon 在互联网环境中部署后产生的资源实例保留为 yaml 文件,并在公有环境中进行重新部署,从而实现离线部署,但因为波及的资源实例较多以及服务受权问题,导致该种形式较为繁琐。
通过 KubeVela 离线部署实际,能够帮忙你更便捷的在离线环境中搭建一整套的 KubeVela,摸索 KubeVela 的落地实际。针对离线部署这个共性的问题,咱们也看到 KubeVela 社区行将推出全新的 velad[5],一个齐全离线、数据高可用的装置工具。Velad 能够帮忙自动化实现筹备集群、下载打包镜像并装置到离线环境等一系列步骤。它反对了:在 Linux 机器(例如阿里云 ECS)本地启动集群、装置 vela-core;在疾速启动一个 KubeVela 管制立体的同时,不用放心管制立体的数据随着机器关机等状况而失落;velad 能够将管制立体全副数据存储到一个传统数据库(例如 RDS 或另一个 ECS 上部署的 MySQL)。
近期的版本中,招行将加大在 KubeVela 开源社区的投入,踊跃共建,在企业级集成能力、多集群能力加强、离线部署和利用级对立可观测等诸多畛域,奉献来自于金融行业的特定用户场景和业务需要,推动云原生生态实现更易用更高效的利用治理平台向前倒退,也欢送更多的社区成员一起退出进来。
* 相干链接:
[1] 公布日志:https://github.com/oam-dev/ku…
[2] 装置 Helm:https://helm.sh/docs/intro/in…
[3] KubeVela 源码:https://github.com/oam-dev/ku…
[4] Catalog 源码:https://github.com/oam-dev/ca…
[5] velad:https://github.com/oam-dev/velad*
您能够通过如下资料理解更多对于 KubeVela 以及 OAM 我的项目的细节:
• 我的项目代码库:github.com/oam-dev/kubevela 欢送 Star/Watch/Fork!
• 我的项目官方主页与文档:kubevela.io,从 1.1 版本开始,已提供中文、英文文档,更多语言文档欢送开发者进行翻译。
• 我的项目钉钉群:23310022;Slack:CNCF #kubevela Channel
• 退出微信群:请先增加以下 maintainer 微信号,表明进入 KubeVela 用户群:
点击查看 KubeVela 我的项目官网:https://kubevela.io/