云+X案例展 | 传播类:k3s基于逾百台工控机的应用实践

本案例由Rancher投递并参与评选,CSDN云计算独家全网首发;更多关于【云+X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云+行业”的健康发展。

随着国家政策的导向,互联网基础设施的普及,工业、能源行业的智能化改造已经进行的如火如荼,传统行业的特点是信息化、智能化水平严重落后于其他行业,在进行信息化、智能化改造的过程中,首先第一步,就是要获取底层系统的全方位的数据。

为此,需要部署大量的边缘设备来采集数据、分析数据,通过这些数据进行建模,大量的边缘设备一般离散的分布在不同机房、厂区、甚至是不同的地理区域,这对运维人员来讲是令人恐惧的事情,维护这些设备,管理其上运行的应用变得极其困难。

全应科技是国内第一批投身于工业互联网改革浪潮中一员,因此上面提到的问题,也是其面临的问题。全应科技从一开始就采用了微服务化的开发模式,除了平台框架核心应用之外,所有应用都是可插拔的微服务。

与业务平台不同的是,边缘设备具有下面的特点:

  • 数量大,动辄有数十台、数百台设备;

  • 单点故障影响小,一个设备只负责一小块区域的数据采集、分析与计算,因此单台设备的故障导致的局部数据的缺失,数据分析层面也进行了数据清洗,因此,单点故障对全局业务影响不大。

需求 

对于运维角色来讲:

  • 管理这些边缘设备,保持边缘设备上运行的服务的高可用性;

  • 快速的上线、升级

  • 配置的快速更改与应用

逻辑拓扑图

下面的图形简单描述了项目基础设施层的拓扑:

其中,每一个边缘侧设备上运行的业务会和中枢业务系统通讯,边缘侧所有设备在单独的一个网络平面中。

运维方案选型

在决定运维方式时,考虑过下面的几种方式:

Ansible

我们在边缘侧设备上运行的应用大部分都是纯Java应用,再加上一部分Python应用,因此部署和启动非常简单,外加上supervisord应用实现了应用的基本高可用方案。在公司还没有进行容器化转型之前,我们采用传统的部署形式部署微服务,就是配置好宿主机的系统环境,直接将应用部署在宿主机系统上,在这种情况下,我们只需要解决的问题是大批量设备部署和维护的问题,因为不管是部署还是更新升级、配置,所有边缘侧使用Ansible可以较好的满足这一条件。

但是这种方法也有缺点,需要维护一套甚至多套ansible playbook,边缘侧设备所在的网络条件比较差,异常状况也比较差,经常掉电重启或者断网,使用ansible 容易造成各个节点的配置不同步。

kubeedge

kubeedge是由华为基于kubernetes开发并开源,专门用于边缘容器编排的运维方案,其基本架构如下:

从上面的架构图中可以看到,kubeedge实现了一个边缘侧完整的框架,对我们公司来讲,我们自行实现了例如“DeviceTwin”、“EventBus”、“ServiceBus”以及基于MQTT收发消息。因此:

  1. 一部分组件与kubeedge重叠了;

  2. 部署不方便,kubeedge要求在各个节点上以kubeadmin部署kubernetes集群(0.6版本,现在已经更新至1.1版本,不知道现在是否有更简便快捷的形式),对网络环境不好的边缘侧设备有较大难度;

  3. kubeedge组件与kubernetes组件基本一致,对于边缘设备寸土寸金的资源来说,不太友好。

通过实践,第2点和第3点原因直接打消了我采用kubeedge的念头。

K3s

去除了k8s中的一些实验特性、非必须的组件,例如云厂商的驱动、存储插件,k3s在默认状态下只会启动除自身进程之外的两个应用:

coredns:提供集群内部的DNS解析服务。

  • traefik:ingress controller的角色。

  • k3s server默认使用本地(已集成)的sqllite作为后端数据存储,通讯效率更高一些。

占用资源少:k3s默认使用containerd(server节点,不可更改)作为容器运行时,不在需要中间层的docker engine,占用资源更少。

部署简单:对环境依赖少,可离线也可在线部署(不过国内的网络环境不推荐在线部署。),离线部署时,只需要下载一个大约40MB的二进制文件和一个200MB不到的离线镜像包,启动k3s节点几乎是秒级的。

上手无代价:

  • 使用k3s与kubernetes习惯完全一致,对于使用kubernetes的人来讲使用k3s没有任何代价;

  • 支持部署helm tiller服务端(尽管tiller端会在helm 3.x版本中被干掉),直接使用原有charts部署应用无障碍;

扩缩容方便:增删节点极其方便,几乎是分钟以内就可以完成;

兼容arm架构设备:对于部分有此种类型的设备的集群友好。

k3s架构图

k3s集群的所有数据存储在server(master)节点本地的SQLite数据库中,当然也支持存储在诸如MySQL、etcd中,都是支持按照需求在部署节点时选择配置的。server节点与agent节点之间采用tunnel隧道通信,增强了安全性,同时也提升了效率。agent与server节点即使断开网络连接,也不影响相互各自的业务。

因此通过上面的对比和实践验证,决定采用k3s来管理边缘设备集群。

完整的运维架构图

使用Rancher管理k3s集群

在Rancher上添加一个集群,然后按照步骤将该集群导入到Rancher平台中,可以使用Rancher管理和维护集群:

挖掘优秀案例,启迪各行各业,推动“云+行业”健康发展。 CSDN云计算第二阶段云+X 案例征集火热报名中

 

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

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

相关文章

从大山走出的阿里首席通信科学家,这次要重返课堂

阿里巴巴首席通信科学家谢崇进与学生们交流 “我是一位没上过大学的科学家”,谢崇进在公益课堂上说。讲台下,是450位将要面临高考的乡村学生。 不久前,阿里巴巴首席通信科学家谢崇进通过网络视频的方式开课,向广东省汕头市潮南区…

MySQL 8.0.26 图形化安装教程 (windows 64位)

文章目录mysq8 比mysql5.7快2倍mysql8官网: https://dev.mysql.com/downloads/windows/installer/8.0.html 双击安装mysql-installer-community-8.0.21.0.msi

8s存储最佳方案_MaxiDi, 意大利:自动化物流解决方案

Maxi Di是Selex商业集团的成员,该集团在意大利拥有2500多家门店,是意大利最大的零售商之一。 由于公司的快速发展,其中央仓的存储容量很快面临饱和,公司不得不租用多个外部仓库以满足供应链的需求。 这导致高昂的租金成本以及库存…

程序员如何让自己 Be Cloud Native - 配置篇

前言 这是《程序员如何让自己 Be Cloud Native》系列文章的第二篇,从第一篇的反馈来看,有些同学反馈十二要素太形式主义,不建议盲目跟从。作者认为任何理论和技术都需要有自己的观点,这些观点是建立在个体知识体系逐渐锻炼出来的…

云+X案例展 | 传播类:南方报业数据中台建设,助力“智媒”飞跃发展

本案例由百分点投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。南方报业传媒集团在半个…

读取扫码枪输入_为何超市“扫码枪”这么强?不输密码钱就没了,现在知道还不晚...

点上面蓝色字免费关注!随着互联网的产生,我们的生活也发生了很大的变化,不仅变得更加便利,生活也变得丰富多彩一些,而有了网络之后,移动支付也应运而生,我们的支付方式也发生了很大的改变。如今只要携带一部…

助力深度学习!阿里开源可插拔 GPU 共享调度工具

根据 Gartner 对全球 CIO 的调查结果显示,人工智能将成为 2019 年组织革命的颠覆性力量。对于人工智能来说,算力即正义,成本即能力,利用 Docker 和 Kubernetes 代表云原生技术为 AI 提供了一种新的工作模式,将 GPU 机器…

使用maven 创建Quartz 任务示例_01

文章目录1. 创建maven项目2. 添加Quartz 依赖3. 编写Quartz配置文件4. 编写Job实现类5. 编写main函数,创建Scheduler6. 创建JobDetail7. 编写Trigger,添加JobDetail8. 启动main函数,体验Quartz定时任务Quartz 支持集群,但不支持分…

git commit提交代码时提示LF与CRLF转换问题 error

在用idea提交Vue项目的时候遇到报错,提示LF will be replaced by CRLF。 然后查了很多博客,都解释了LF和CRLF的问题,基本上说的解决办法是运行这行代码:git config --global autocrlf 运行结果为 true但这个本来就是默认设置&…

2019阿里云开年Hi购季大促主会场全攻略!

2019阿里云云上采购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返5折抢购阶段、3月16日-3月31日的续费抽豪礼5折抢购阶段。 整个大促活动包含1个主会场…

云+X案例展 | 民生类:肯耐珂萨入围腾讯SaaS加速器首期成员名单

本案例由肯耐珂萨投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。腾讯产业加速器新推出…

c++ 指针拼接字符串_字符串拼接+和concat的区别

和concat都可以用来拼接字符串,但在使用上有什么区别呢,先来看看这个例子。public static void main(String[] args) {// example1String str1 "s1";System.out.println(str1 100);//s1100System.out.println(100 str1);//100s1String str2…

JobDataMap传递参数_02

JobDataMap属于JobDetail的一部分 可以在构建JobDataMap时传递参数 取出参数2种形式: 第1种:可以从execute方法的上下文中取出参数 第2种:在Job类中,定义参数名称,完成getset方法 推荐使用第2种lombok 添加参数 //创…

如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招

阿里妹导读:现代人离不开手机,更离不开Wi-Fi。很多同学经常吐槽家中Wi-Fi用得不爽,打游戏看视频又卡又慢。 针对大家常见的问题,和坊间各种“谣传”,今天我们特别邀请了阿里工程师艺超,来为大家做全面的梳…

建议看 | 计算机网络核心概念

戳蓝字“CSDN云计算”关注我们哦!作者 | cxuan责编 | 阿秃本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。网络核心网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点。…

配置管理 ACM 在高可用服务 AHAS 流控降级组件中的应用场景

应用配置管理(Application Configuration Management,简称 ACM)是一款应用配置中心产品。基于ACM您可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量,同时保证配置的安全合规。ACM 有着丰富的使用场景&#xff0c…

定时任务的并发_03

正常定时任务场景 任务1从第0秒开始执行,执行3秒结束 任务1再从第5秒开始执行,执行3秒结束,以此类推 每一个任务执行都不会有冲突,都不会有干扰,在规定的5秒时间内,任务1都能执行完成 定时任务的并发场景…

2019阿里云开年Hi购季云通信分会场全攻略!

2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返5折抢购阶段、3月16日-3月31日的续费抽豪礼5折抢购阶段。 做为整个Hi购季非常重要的一…

JobDataMap 更新_04

第2篇讲述了怎样给job传递参数或者随机数,但是,这个随机数不会更新,举个例子,执行第一次job的时 随机数3 ,执行第2次job,随机数仍然是3,因为执行每一次job都会实例化job实例对象 JobDataMap更新…

高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用

在消息队列中,当消费者去消费消息的时候,无论是通过 pull 的方式还是 push 的方式,都可能会出现大批量的消息突刺。如果此时要处理所有消息,很可能会导致系统负载过高,影响稳定性。但其实可能后面几秒之内都没有消息投…