OpenYurt v1.2 新版本深度解读(三):五步搭建一个OpenYurt集群
作者:苏杭、敬易
OpenYurt 作为业界首个无侵入云原生边缘计算平台近期迎来了 v1.2.0 版本的发布,在 Kubernetes 无侵入、云边端全协同、跨网络域通信等特性上持续发力,深入打造 OpenYurt + Kubernetes 实现海量边缘计算业务的持续交付与高效运维管理能力。
背景
Kubernetes 作为云原生最基础的项目,目前已经获得开发者与企业的广泛认可并激起高涨的参与热情,OpenYurt 进一步将云原生体系技术扩展到边缘场景,其本身的复杂性以及边缘场景的多样性致使大多数开发者难以在短时间内使用并且参与到 OpenYurt 项目中来。其中关于 OpenYurt 的安装部署成为横在云原生从业者、社区参与者以及对边缘云原生感兴趣的开发者面前的一道难关。
在 OpenYurt v1.2.0 版本中进一步优化了 OpenYurt 安装过程,不再对原生 Kubernetes 的配置有任何修改,基于 Kubernetes+OpenYurt 实现云原生体系的边缘计算平台,将边缘设备与算力以云原生的方式统一管理。
OpenYurt 安装部署优化
在最新发布的 v1.2.0 版本中,OpenYurt 的安装与部署流程做了大量的优化,如图所示,将原流程的十个步骤缩减为五个步骤,在最新的版本中无需对原生 Kubernetes 组件做任何配置上的调整。
新的安装部署步骤如下:
-
初始化一个 Kubernetes 集群,并且安装 Flannel 插件以及 CoreDNS;2. 给云端节点打标签,与边缘节点做区分(云端节点一般部署中心管控、可观测组件) ;
-
部署 OpenYurt 管控组件,Yurt-Controller-Manager 组件负责自治节点上 Pod 的生命周期管理以及边缘侧组件的证书审批,Yurt-App-Manager 组件为跨地域资源及业务管理器,以节点池(一组节点)为单位实行单元化管理。
-
部署跨网络域通信组件 Raven,Raven 通过在云边构建 VPN 隧道实现跨网络域的通信,其中 Raven-Controller-Manager 负责网关节点的管理,Raven-Agent 负责构建 VPN 以及管理路由。
-
接入边缘节点,推荐使用最新的 Yurtadm 一键接入边缘节点,将自动部署边缘自治组件 Yurt-Hub。
部署的详细操作步骤,可以参考 OpenYurt 官方社区网站的安装指南。
安装指南:
https://openyurt.io/zh/docs/installation/manually-setup/
受益于 OpenYurt 安装部署优化的 Prometheus 实践
鉴于在 v1.2 版本 Raven 组件功能的进一步完善,Prometheus 以及 MetricsServer 等观测与监控的部署流程将与在原生 Kubernetes 集群上的安装部署流程保持一致,不再依赖 Yurt-Tunnel 和 CoreDNS 的特殊配置。 但是相比于原生 Kubernetes 在数据传输的方式产生有一定的区别。如图所示,云端到网关(Gateway)或单独的边缘节点的监控指标数据将通过 Raven 构建的 VPN 隧道进行通信,对普通节点的监控指标数据将被转发到网关节点上通过 VPN 隧道道传输到云端的观测与监控组件。
尽管在数据传输的方式上有一定区别,但 Promethues 的安装部署仍然保持了原生 Kubernetes 的简易性,以通过 10255 只读端口收集 kubelet 的 metrics 为例,直接加入获取 kubelet 监控指标的配置即可,通过 relabel 规则修改从 10255 只读端口以 http 协议收集信息,即可完成 Prometheus 的安装部署以及配置。
- job_name: 'kubelet'
kubernetes_sd_configs:
- role: node
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- source_labels: [__address__]
action: replace
target_label: __address__
regex: ([^:;]+):(\d+)
replacement: ${1}:10255
- source_labels: [__scheme__]
action: replace
target_label: __scheme__
regex: https
replacement: http
未来规划与展望
-
目前 Raven 组件仍然采用 yaml 的方式部署安装,未来将采用 helm 进行管理和部署;并且未来会将 OpenYurt 的所有 Controller 进行整合为 Yurt-Manager 组件,未来将采用 helm 一键安装部署 Yurt-Manager、Raven-Agent 即可完成 OpenYurt 的安装。
-
在上述的基础上,安装部署流程将进一步简化到三步:初始化 Kubernetes 集群->安装 OpenYurt 组件->接入节点。
如果您对于 OpenYurt 有任何疑问,欢迎使用钉钉扫描二维码或者搜索群号加入钉钉交流群。(钉钉群号:12640034121)
戳此处,立即了解 OpenYurt 项目