招商银行 KubeVela 离线部署实践

简介:本文将以 KubeVela v1.2.5 版本为例,介绍招商银行 KubeVela 的离线部署实践,来帮助其他用户在离线环境中更便捷的完成 KubeVela 的部署。

招商银行云平台开发团队自 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: Servicename: velauxweight: 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] 发布日志:Releases · oam-dev/kubevela · GitHub

[2] 安装 Helm :Helm | Installing Helm

[3] KubeVela 源码 :Releases · oam-dev/kubevela · GitHub

[4] Catalog 源码:GitHub - oam-dev/catalog: Catalog of community maintained components and traits.

[5] velad:GitHub - kubevela/velad: Lightweight KubeVela that runs as Daemon in single node with high availability.

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云数据库自研内核全新升级 新架构比原先性能提升20%

9月16日&#xff0c;腾讯云数据库自研内核TXSQL完成了全新升级。搭载了新一代内核的云数据库在性能上较之前提升超过20%&#xff0c;延迟降低80%。目前&#xff0c;新一代内核TXSQL已应用于腾讯云数据库MySQL、分布式数据库TDSQL、云原生数据库TDSQL-C等多款主流云数据库产品中…

系统性能分析从入门到进阶

简介&#xff1a;本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的同学有所帮助。 作者 | 勿非 本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的…

百度地图实用案例

1、创建一个js文件 export function BMPGL(ak) {return new Promise(function (resolve, reject) {window.init function () {// eslint-disable-next-lineresolve(BMapGL)}const script document.createElement(script)script.type text/javascriptscript.src http://api…

宜搭小技巧|第一时间看到审批进度?消息通知来帮你

简介&#xff1a;「消息通知」自动发送&#xff0c;再也不用担心错过流程审批进度&#xff01; 今天&#xff0c;宜小搭要申请出差&#xff0c;为了第一时间获取审批进度&#xff0c;他频繁刷新审批页面&#xff0c;这样既麻烦同时也浪费了大量时间&#xff0c;影响其他工作。…

一看即会:Serverless 应用开发的 7 个实战小技巧

简介&#xff1a;干货满满&#xff0c;马住收藏&#xff01; Serverless 应用开发的 7 个经验心得 作者说&#xff1a;Serverless 架构下的应用开发&#xff0c;与传统架构的应用开发还是有比较大的区别点的&#xff0c;例如天然分布式架构会让很多框架丧失一定的"便利性…

vue路由权限

1&#xff0c;配置每个页面的meta信息 meta:{grade:[1,2,3], //权限等级title:页面标题,icon:图标,show:是否展示导航 } 2&#xff0c;将无权限的页面路由直接配置到routes let routes [{path: /login,name: login,component: () > import(../components/login/login.vu…

如何使用 Serverless Devs 部署静态网站到函数计算

简介&#xff1a;手把手教你&#xff1a;如何使用 Serverless Devs 部署静态网站到函数计算。 前言 公司经常有一些网站需要发布上线&#xff0c;对比了几款不同的产品后&#xff0c;决定使用阿里云的函数计算&#xff08;FC)来托管构建出来的静态网站。 FC 弹性实例自带的50…

一个好的科技公司logo长这样

简介&#xff1a;一个好的科技logo能体现出行业独有的专业性和技术优势&#xff0c;让你的公司科技感加满&#xff01; 近年来&#xff0c;越来越多的初创公司崭露头角&#xff0c;其中科技互联网公司的比重非常高。小云也收到很多朋友的留言&#xff0c;询问科技类公司应该怎…

滚动页面触发相应位置动画 ---react

需要实现的效果&#xff1a; &#xff08;滚动到内容区域触发&#xff09; 第一段内容移动效果 第二段内容淡入 第三段内容缩放实现思路 滚动过的距离当前窗口的高度>元素到顶部窗口的距离 >则触发动画整体代码 import React,{useRef,useEffect,useState} from react;…

系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

简介&#xff1a;本篇以 first contact (通信两端建立首个连接) 场景为例&#xff0c;介绍 SMC-R 通信流程。 文/龙蜥社区高性能网络SIG 一、引言 通过上一篇文章 《系列解读SMC-R&#xff1a;透明无感提升云上 TCP 应用网络性能&#xff08;一&#xff09;》我们了解到&…

北京大学、阿里巴巴成立联合实验室,聚焦人工智能理论和创新算法研究

9月17日&#xff0c;在北京大学智能学科建设20周年大会上&#xff0c;北京大学和阿里巴巴共同宣布成立“北大-阿里妈妈人工智能创新联合实验室” &#xff08;以下简称实验室&#xff09;。实验室将聚焦人工智能前沿领域的理论、方法与关键技术展开研究&#xff0c;为社会和企业…

智能开放搜索上线定制分词器

简介&#xff1a;智能开放搜索上线定制召回模型-定制分词器功能&#xff0c;满足各行业、垂类、业务特殊&#xff0c;对搜索有较高分词要求的客户&#xff0c;提升语义理解能力&#xff0c;精准召回用户搜索意图。 NLP算法在搜索链路中的应用 这是一个完整的从查询词到搜索结…

滚动一屏距离

const top_page () > {if (document.documentElement.scrollTop 0) {return }let timmer;let h document.documentElement.clientHeightlet n 0timmer setInterval(() > {n;console.log(执行)if (n > h / 20) {clearInterval(timmer)}document.documentElement.s…

云端渲染时长1.58亿核小时,阿里云助力国漫巨制《新神榜:杨戬》提升视效

当前&#xff0c;追光动画新作《新神榜&#xff1a;杨戬》&#xff08;以下简称“杨戬”&#xff09;正在热映&#xff0c;制作水准再次升级。无论是“水墨特效太极图大战”&#xff0c;亦或神女婉罗的灵动舞姿&#xff0c;还是元神现身的超燃瞬间&#xff0c;都极具视觉震撼。…

如何开一场高效的迭代排期会 | 敏捷开发落地指南

简介&#xff1a;如何开一场高效的迭代排期会&#xff0c;高效落地敏捷开发&#xff0c;先从这3个关键活动着手&#xff0c;通过本文你将了解到什么是敏捷开发、什么是双周迭代、如何高效地开展排期会&#xff0c;以及如何在云效项目协作Projex 中落地排期会相关事宜。 摘要&a…

简单的聊天室

基于expresssocket.io express框架直接安装后得到模板 这是socket官网的例子&#xff1a; https://socket.io/get-started/chat /*** Module dependencies.*/ var app require(../app); var debug require(debug)(server:server); var http require(http); const { Serve…

Linux 中如何获取文件的绝对路径

我们都知道&#xff0c;在命令行可以使用 pwd 命令来获取当前目录的完整路径&#xff08;绝对路径&#xff09;&#xff1a;pwd那么&#xff0c;如何获取文件的绝对路径呢&#xff1f;有下列几种方法&#xff0c;可以打印文件的完整路径&#xff1a;readlinkrealpathfindls 和 …

EasyCV开源|开箱即用的视觉自监督+Transformer算法库

简介&#xff1a;EasyCV是阿里巴巴开源的基于Pytorch&#xff0c;以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具。EasyCV在阿里巴巴集团内支撑了搜索、淘系、优酷、飞猪等多个BU业务&#xff0c;同时也在阿里云上服务了若干企业客户&#xff0c;通过平台…

开源数据库为什么能捕获开发者的心?

【CSDN 编者按】开源数据库的重要性&#xff0c;早就不言而喻。早期的自由软件开发者和初创公司&#xff0c;很多都受益于开源数据库。伴随着曾经的初创公司羽翼逐渐丰满&#xff0c;它们的开发者文化渗透到整个生态系统中&#xff0c;更多的人开始关注这些初创公司采取的方法&…

react+umi+dva+ts基础基础使用

官网链接 umidva 文件目录 page 页面 index.tsx models 每一个model文件都是需要挂在dva实例上的才会生效demo.ts sevices 写接口的&#xff08;这里就不写了&#xff09;demo.ts实现一个简单的数据流向&#xff0c;将数据存储到dva&#xff0c;然后在页面使用 page/inde…