OpenYurt开箱测评|一键让原生K8s集群具备边缘计算能力

头图.png

作者| 郑超 阿里云高级开发工程师

随着物联网技术以及 5G 技术的高速发展,将云计算的能力延伸至边缘设备端,并通过中心进行统一交付、管控,已成为云计算的重要发展趋势。为服务更多开发者把握这一趋势,5 月 29 日,阿里巴巴正式对外开源了基于 ACK@Edge(边缘集群托管服务)的云原生边缘计算框架 —— OpenYurt。

自 OpenYurt 开源以来受到了开发者的关注,今天这篇文章将带大家快速上手 OpenYurt ,介绍如何使用 OpenYurt 提供的命令行管理工具 Yurtctl, 高效快速地部署 OpenYurt 集群。

OpenYurt 介绍

OpenYurt 主打“云边一体化”概念,依托 Kubernetes 强大的容器应用编排能力,满足了云-边一体化的应用分发、交付、和管控的诉求。相较于其他基于 Kubernetes 的边缘计算框架,OpenYurt 秉持着“最小修改”原则,通过在边缘节点安装 Yurthub 组件,和在云端部署 Yurt-controller-manager,保证了在对 Kubernetes 零侵入的情况下,提供管理边缘计算应用所需的相关能力。OpenYurt 能帮用户解决在海量边、端资源上完成大规模应用交付、运维、管控的问题,并提供中心服务下沉通道,实现和边缘计算应用的无缝对接。在设计 OpenYurt 之初,我们就非常强调保持用户体验的一致性,不增加用户运维负担,让用户真正方便地 “Extending your native kubernetes to edge”。

Yurtctl:一键让原生 K8s 集群具备边缘计算能力

为了让原生 K8s 集群具备边缘计算能力,OpenYurt 以 addon 为载体,非侵入式给原生 K8s 增强了如下能力:

  • 边缘自治能力(YurtHub: 已开源),保证在弱网或者重启节点的情况下,部署在边缘节点上的应用也能正常运行;
  • 云边协同能力(待开源),通过云边运维通道解决边缘的运维需求,同时提供云边协同能力;
  • 单元化管理能力(待开源),为分散的边缘节点,边缘应用,应用间流量提供单元化闭环管理能力;
  • 其他一些能力。

对于大家比较关心的问题:如何将增强的边缘计算能力和原生 K8s 无缝融合。基于过往 ACK@Edge 的线上运维经验,我们开源了 Yurtctl 命令行工具,帮助实现了原生 Kubernetes 和 OpenYurt 之间的无缝转换以及对 OpenYurt 相关组件的高效运维。

Yurtctl 的工作原理

1.png

图 1 - Yurtctl convert 流程

Yurtctl 是一个中心化的管控工具。在 OpenYurt 云-边一体的架构里,Yurtctl 将直接与 APIServer 进行交互。它借助原生 Kubernetes 的 Job workload 对每个 node 进行运维操作。如图1所示,在执行转换(convert)操作时,Yurtctl 会通过 Job 将一个 servant Pod 部署到用户指定的边缘节点上,servant Pod 里的容器执行的具体操作请参考:https://github.com/alibaba/openyurt/blob/master/config/yurtctl-servant/setup_edgenode。

由于 servant Pod 需要直接操作节点 root 用户的文件系统(例如将 yurthub 配置文件放置于 /etc/kubernetes/manifests 目录下),并且需要重置系统管理程序(kubelet.service), servant Pod 中的 container 将被赋予 privileged 权限,允许其与节点共享 pid namespace,并将借由 nsenter 命令进入节点主命名空间完成相关操作。当 servant Job 成功执行后,Job 会自动删除。如果失败,Job 则会被保留,方便运维人员排查错误原因。借由该机制,Yurtctl 还可对 Yurthub 进行更新或者删除。

案例:一键转换 OpenYurt 集群

注:在 ACK 上做 demo 实验

1. 获取 yurtctl

OpenYurt github 仓库包括了 yurtctl 的源码,下载 OpenYurt 仓库之后,即可通过编译获得 yurtctl,具体命令如下:

$ make build WHAT=cmd/yurtctl
hack/make-rules/build.sh cmd/yurtctl
Building cmd/yurtctl

编译成功之后,yurtctl 可执行文件就可以在 _output/bin/ 目录下找到。

2. 将 Kubernetes 转换为 OpenYurt

如果我们想将一个双节点(node1 和 node2)的 Kubernetes 集群转换成 OpenYurt 集群,并且只想让 node2 成为自治边缘节点,那么可以通过执行 yurtctl convert 来实现,具体命令如下:

$ yurtctl convert --cloud-nodes node1 --provider ack
I0603 14:34:33.714304   40825 convert.go:164] mark node1 as the cloud-node
I0603 14:34:33.719816   40825 convert.go:172] mark node2 as the edge-node
I0603 14:34:33.736609   40825 convert.go:198] deploy the yurt controller manager
I0603 14:34:33.742272   40825 convert.go:210] deploying the yurt-hub and resetting the kubelet service...
I0603 14:34:53.810165   40825 util.go:168] servant job(yurtctl-servant-convert-node2) has succeeded

成功配置节点之后,我们需要将边缘节点标记为自治状态,具体命令如下:

$ yurtctl markautonomous # 如果用户只想标记部分边缘节点,则可以使用 --autonomous-nodes 选项指定
I0602 11:22:05.610222   89160 markautonomous.go:149] mark node2 as autonomous

接着我们就可以测试 node2 在断网环境下是否能实现节点自治。首先,在 node2 上部署一个测试 pod:

$ kubectl apply -f-<<EOF
apiVersion: v1
kind: Pod
metadata:name: bbox
spec:nodeName: node2containers:- image: busyboxcommand:- topname: bbox
EOF
pod/bbox created

登陆到 node2 上,将 Yurthub 的 --server-addr 参数设置为一个不可访问的地址:

sudo sed -i 's|--server-addr=.*|--server-addr=https://1.1.1.1:1111|' /etc/kubernetes/manifests/yurt-hub.yaml

耐心等待 40 秒,我们将观察到,即使 node2 已经处于 NotReady 状态,pod1 仍然处于 Running 状态。这说明当边缘节点处于自治状态时,即使 node 不在线,Pod 也不会被云端 node controller 驱逐。

$ kubectl get node 
NAME           STATUS     ROLES    AGE   VERSION
node1          Ready      master   14m   v1.14.8
node2          NotReady   <none>   12m   v1.14.8
$ kubectl get pod
NAME   READY   STATUS    RESTARTS   AGE
bbox   1/1     Running   0          5m12s

这时如果将 node2 重启,我们可以用 docker ps (假设节点使用 docker 作为 container runtime)命令来验证 bbox Pod 会被重新拉起。

$ docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.RunningFor}}' | grep busybox
d0c8134fddc1        busybox          About a minutes ago

这是因为 Kubelet 会从 Yurthub 读取缓存的数据,恢复重启前的Pod状态。这部分技术细节我们会在后续的文章里详细介绍。

3. 将 OpenYurt 转换回 Kubernetes

相对的,通过运行 yurtctl revert 命令,用户可以将一个 OpenYurt 集群转换回 Kubernetes 集群。假设我们想将上述双节点 Kubernetes 集群转换回 Kubernetes 模式,那么只需运行以下命令即可(运行该命令前,请先将 node2 上的 yurthub 重新连上 apiserver):

$ yurtctl revert
I0603 14:38:55.522376   41016 revert.go:106] label alibabacloud.com/is-edge-worker is removed
I0603 14:38:55.527998   41016 revert.go:116] yurt controller manager is removed
I0603 14:38:55.548354   41016 revert.go:130] ServiceAccount node-controller is created
I0603 14:39:05.572686   41016 util.go:168] servant job(yurtctl-servant-revert-node2) has succeeded
I0603 14:39:05.572718   41016 revert.go:142] yurt-hub is removed, kubelet service is reset

如果还想了解更多 yurtctl 的使用方法,请参考 OpenYurt github 仓库下的[ ]()yurtctl的教程:https://github.com/alibaba/openyurt/tree/master/docs/tutorial。

What's Next

Yurtctl 目标是成为运维人员管理 OpenYurt 集群的有力工具。因此我们会持续演进 Yurtctl 以支持 OpenYurt 的新功能和新增的运维流程或场景。例如,不久之后 OpenYurt 还将开源 Yurttunnel,Yurtunit 等组件,Yurtctl 也将对这些组件提供支持。我们同时欢迎大家提出对 Yurtctl 的需求,一起努力使其更加完善。

社区建设

OpenYurt 社区欢迎新用户加入和参与共建。用户可以通过 Github issue 获取技术支持、报告 bug、提出需求意见等,或者通过 OpenYurt 用户钉钉群直接和core开发人员取得联系。(欢迎钉钉搜索群号加入交流群:31993519)

欢迎参与共建:OpenYurt 项目地址 - https://github.com/alibaba/openyurt

课程推荐

为了更多开发者能够享受到 Serverless 带来的红利,这一次,我们集结了 10+ 位阿里巴巴 Serverless 领域技术专家,打造出最适合开发者入门的 Serverless 公开课,让你即学即用,轻松拥抱云计算的新范式——Serverless。

点击即可免费观看课程:https://developer.aliyun.com/learning/roadmap/serverless

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

技术运维的经营大法——对话阿里云MVP熊昌伟

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 不同于其他技术人的进阶经历&#xff0c;熊昌伟毕业后从未跳槽&#xff0c;在用友网络潜心修炼14年至今。从…

我同事狠心用 Python 3 ,刚开始就直接崩溃!你们试试......

Python 近两年一直霸占编程语言排行榜 Top3&#xff0c;火热程度有目共睹。这也让刚入行的程序员&#xff0c;甚至 BATJ 的技术大牛&#xff0c;都意识到 Python 对于一个程序员职业发展的重要性&#xff0c;将其作为第一/第二开发语言去学习。我同事前些日子说要学Python&…

阿里宜搭助力服务中枢升级,提升10倍开发效率

“真没想到&#xff0c;我在小程序上申请了‘要一双拖鞋’&#xff0c;不到半分钟功夫&#xff0c;机器人就把拖鞋送来了&#xff01;”住在菲住布渴的王女士感叹到。在酒店管理和服务能力的建设中&#xff0c;菲住布渴始终致力于通过数字化、智能化手段&#xff0c;让每一位入…

系统架构设计师 - 第三方认证服务

文章目录1.基于非对称密钥体系的 KPI/CA2.基于对称密钥体系的 Kerberos1.基于非对称密钥体系的 KPI/CA PKI&#xff1a;公钥基础设施 CA&#xff1a;认证中心 加密相关&#xff08;对称加密、非对称加密、信息摘要、数字签名、CA数字证书&#xff09; 2.基于对称密钥体系的 K…

MyBatisplus分页插件

文章目录一、后台分页配置1. 配置分页插件2. 编写分页代码3. 测试二、自定义查询2.1. 自定义接口2.2. 自定义查询2.3. 测试自定义分页一、后台分页配置 MyBatis Plus自带分页插件&#xff08;即BaseMapper接口中的selectPage()方法&#xff09;&#xff0c;只要简单的配置即可…

一个半月快速、低成本上云,云数据库专属集群解决方案看过来

在6月9日的“全速重构”2020阿里云线上峰会&#xff08;点击可查看数据库专场亮点&#xff09;中&#xff0c;阿里云智能数据库事业部的资深产品专家斗佛开启了全球首发4款云数据库新产品——云数据库专属集群、图数据库GDB、云数据库Cassandra版、云数据库ClickHouse。今天小编…

以容器为代表的云原生技术,正成为释放云价值最短路径

作者 | 丁宇&#xff08;叔同&#xff09; 阿里云智能容器平台负责人 云计算、大数据、人工智能等新技术正迅速的改变着我们所处的时代&#xff0c;其巨大的影响力已经从量变到质变&#xff0c;数字化转型成为企业发展的必然选择。 据IDC报告&#xff0c;全球前1000的大企业中…

搭载敏捷飞天底座,阿里云专有云敏捷版全面升级

6月9日&#xff0c; 在2020阿里云线上峰会上阿里云混合云重磅发布三款新品&#xff1a;专有云敏捷版&#xff08;Apsara Stack Agility&#xff09;、 混合云管理平台&#xff08;Apsara Uni-manager&#xff09;以及下一代企业级一站式DevOps平台“云效”。阿里云智能资深技术…

云·越2021 | 移动云开发者社区网站焕新升级

云上磨一剑&#xff0c;砥砺自生辉移动云开发者社区挥手2020&#xff0c;焕新2021迎来社区功能全新升级现已正式上线移动云开发者社区自2020年11月对外发布以来&#xff0c;依托移动云全面的云能力、丰富的产品体系、专业领域能力培训认证、优质双创服务体系等核心资源&#xf…

阿里巴巴HRSSC:用宜搭实现业务管理模式创新

快速上线全球100支工单流程&#xff0c;为员工提供千人千面的HR自助服务……借助阿里巴巴旗下低代码应用搭建平台“宜搭”&#xff0c;仅仅历时3个月&#xff0c;阿里巴巴HR共享服务中心全新上线&#xff0c;标志着全面服务阿里巴巴生态化、全球化的HR共享服务平台诞生了。 作…

从零入门Serverless|一文详解Serverless技术选型

作者 | 李国强 阿里云资深产品专家 本文整理自《Serverless 技术公开课》。关注“Serverless”公众号&#xff0c;回复“入门”&#xff0c;即可获取 Serverless 系列文章 PPT。 今天来讲&#xff0c;在 Serverless 这个大领域中&#xff0c;不只有函数计算这一种产品形态和…

肖修鹏:十年磨一剑,成就靠谱职业经理人

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 曾是科大讯飞15年资深专家&#xff0c;深耕人工智能领域&#xff0c;始终坚守智能语音赛道&#xff0c;时任…

微信小程序添加开发者、赋予权限、添加体验者

使用管理员账号扫码->登录小程序后台 https://mp.weixin.qq.com/wxamp/home/guide 【管理】-【成员管理】-【项目成员】-【添加成员】 编辑权限->个别权限调整 权限调整完毕后&#xff0c;点击保存

如何构建低延时直播体验,让互动更实时?

QuestMobile《2020中国移动直播行业“战疫”专题报告》数据显示&#xff0c; 疫情期间&#xff0c;看直播成为休闲娱乐、获取资讯、上课学习的主要方式&#xff0c;一些高度依赖线下场景的行业也纷纷通过直播进行自救&#xff0c;线上转型直播卖货&#xff0c;政府部门也通过直…

疫情中的2021,云原生会走向哪里

头图 | 付费下载于视觉中国 翻译 | Daixiang&#xff08;华为云原生团队&#xff09;

Flink在快手实时多维分析场景的应用

作者&#xff1a;董亭亭、徐明 摘要&#xff1a;作为短视频分享跟直播的平台&#xff0c;快手有诸多业务场景应用了 Flink&#xff0c;包括短视频、直播的质量监控、用户增长分析、实时数据处理、直播 CDN 调度等。此次主要介绍在快手使用 Flink 在实时多维分析场景的应用与优化…

小程序发布流程

上一篇&#xff1a;企业微信小程序~开启线上真机调试模式https://blog.csdn.net/weixin_40816738/article/details/124847862 文章目录一、小程序信息补充1. 小程序信息补充2. 小程序名称3. 小程序简称4. 小程序头像5. 小程序介绍6. 案例效果图二、小程序类目2.1. 小程序类目补…

一周上线系统,效率提升100%,宜搭助力阿里巴巴法务数字化升级

程序员小王正坐在电脑前写代码&#xff0c;屏幕跳出一条提醒&#xff1a;“亲&#xff0c;你于2019年6月5日提交的创新提案&#xff0c;已经通过专利审批。”这是来自阿里巴巴知识产权管理系统的通知&#xff0c;当公司权利库内的某项权利&#xff08;比如专利&#xff09;的状…

“寒武纪大爆发”之后的云原生,2021年走向何处?

【编者按】云原生已无处不在&#xff0c;《云原生人物志》是CSDN重磅推出的系列原创采访&#xff0c;我们关注云原生中每一个技术人、公司的身影。知微见著&#xff0c;窥见云原生价值与趋势。 2021新年之初&#xff0c;来听听Tetrate 布道师、CNCF Ambassador、云原生社区及 S…