k3s入门与实战---适配边缘计算场景的轻量级的k8s(一)
一、k3s介绍
1.1 什么是k3s?
k3s 是经过 CNCF 认证的由 Rancher 公司开发维护的一个轻量级的 Kubernetes 发行版,内核机制还是和 k8s 一样,但是剔除了很多外部依赖以及 K8s 的 alpha、beta 特性,同时改变了部署方式和运行方式,目的是轻量化K8s,简单来说,K3s 就是阉割版 K8s,消耗资源极少。它主要用于边缘计算、物联网等场景。
K3s 具有以下特点:
1、安装简单,占用资源少,只需要 512M 内存就可以运行起来;
2、apiserver 、schedule 等组件全部简化,并以进程的形式运行在节点上,把程序都打包为单个二进制文件,每个程序只需要占用 100M 内存;
3、使用基于 sqlite3 的轻量级存储后端作为默认存储机制。同时支持使用 etcd3、MySQL 和 PostgreSQL 作为存储机制;
4、默认使用 local-path-provisioner 提供本地存储卷;
5、默认安装了 Helm controller 和 Traefik Ingress controller;
6、所有 Kubernetes control-plane 组件的操作都封装在单个二进制文件和进程中,使 K3s 具有自动化和管理包括证书分发在内的复杂集群操作的能力。
7、减少外部依赖,操作系统只需要安装较新的内核(centos7.6 就可以,不需要升级内核)以及支持 cgroup 即可,k3s 安装包已经包含了 containerd、Flannel、CoreDNS,非常方便地一键式安装,不需要额外安装 Docker、Flannel 等组件。
1.1.1 CNCF介绍
CNCF介绍:CNCF,英文全称为 Cloud Native Computing Foundation,中文译为“云原生计算基金会”。成立于 2015 年 12 月 11 日。
CNCF 托管的项目:
– kubernetes : 容器编排系统,可以跨主机管理容器化应用;
– Prometheus :开源的监控系统,专注于时间序列数据,主要用于对 k8s 和容器进行监控;
– CoreDNS:k8s 中的 DNS 服务器;
– containerd:将容器运行时及其管理功能从 Docker Daemon 剥离的镜像管理和容器执行技术;
– Fluentd:日志收集组件;
– Linkerd:为微服务提供可靠性支持、自动化负载均衡、服务发现和运行时可恢复性的开源“服务网 格”项目;
– gRPC:现代化高性能开源远程调用框架;
– rkt:帮助开发者打包应用和依赖包,简化搭环境等部署工作,提高容器安全性和易用性的容器引 擎。
1.1.2 什么是发行版
我们经常听说 linux 发行版,那什么是 linux 发行版?
Linux 发行版与 Windows 或 Mac OS(操作系统)一样,Linux 由多种类型组成,称为分发,每个发行版都 很相似,但是不完全一样。一般情况下,Linux 发行版是各种应用程序(软件)的集合,从而来适应使用目的,除了在服务器上安装之外,其他还要提前设置,以便可以立即进行实际使用。
Linux 发行版主要有 Debian 类型、Slackware 系列、Red Hat
1.Debian 类型: Debian 类型是高度发达的,但是 Debian 门槛比较高,对用户比较友好的,Debian 拥有出色的性能,可用于嵌入式设备等众多应用。此外,它已经发展成为一种流行的 Linux 发行版,名为 Ubuntu。
2.Slackware 系列: Slackware 管理方法比其他线路更复杂,对于初学者来说相对困难,这是因为项强调稳定性和安全性的发展政策,并且没有优先考虑易用性。经过验证后是否有透露软件的立场,Slackware 著名的发行版包括 openSUSE,Plamo Linux 和 Puppy Linux。
3.Red Hat: 目前 Red Hat 大致分为两类,第一个是红帽企业 Linux(RHEL),有些服务是要收费的。另一种是名为 Fedora(Fedora)的免费发行版
4、Centos CentOS 是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。
1.1.3 边缘计算介绍
边缘计算也称为边缘处理,是一种将服务器放置在本地设备附近的网络技术,解决数据传输的延迟问题。这样的处理方式是在传感器附近或者设备产生数据的位置进行的,因此称之为边缘。“边缘”特指 计算资源在地理分布上更加靠近设备,而远离云数据中心的资源节点。
典型的边缘计算分为物联网(例如:智慧城市,智能家居,大型商店等)和非物联网(例如:游戏,CDN 等)场景。
边缘计算应用场景:
在城市路面检测中,在道路两侧路灯上安装传感器收集城市路面信息,检测空气质量+、光照强度、噪音水 平等环境数据,当路灯发生故障时能够及时反馈至维护人员。
在智能交通中,边缘服务器上通过运行智能交通控制系统来实时获取和分析数据,根据实时路况来控制交通信息灯,以减轻路面车辆拥堵等。
在无人驾驶中,如果将传感器数据上传到云计算中心将会增加实时处理难度,并且受到网络制约,因此无人驾驶主要依赖车内计算单元来识别交通信号和障碍物,并且规划路径
1.1.4 边缘计算应用场景
《福布斯》技术委员会的 12 位成员研究了一些企业的用例,在这些用例中,都使用了边缘计算:
应用一:改进医疗设备性能和数据管理
在医疗场景下,边缘计算主要帮助医疗保健体系的 IT 基础架构,具体来说,是防止医疗设备管理的应用程序发生延迟。在边缘计算的支持下,无需构建集中的数据中心,可对关键数据进行本地化,在安全性、响应速度和有效性上有更佳表现。
应用二:本地零售的实时数据分析
边缘计算的主要目的,是让运算尽可能接近数据源。在零售场景中,以往企业都是将各分支的数据汇总到中心位置进行分析,再进行决策和行动。而通过边缘计算,零售店铺可以在本地就进行数据处理和优化,这样组织的行动反馈就能更快更及时。
应用三:消费者数据隐私
处理高度敏感的消费者数据的公司发现,由于数据泄漏成本高昂,云计算很危险。因此,许多这类公司正在将边缘计算用于处理消费者数据,因为它为他们提供了更多的安全和控制选择。这可能会使企业工作流程复杂化,但它可以带来好处,特别是在医疗数据公司中。- Sean Byrnes, Outlier
应用四:物联网
物联网是企业为获得更好的数据、客户体验、现场营销和更智能的流程而实施的智能的重大转变。边缘计算使网络的运行水平能够为物联网提供高性能。接近实时的速度意味着用户体验可以非常出色,并且可以为企业带来更好、更有效的运营。-Frank Cittadino, QOS Networks
应用五:视频监控和分析
视频监控已经部署在边缘,以及视频分析。视频产生的数据是所有其他来源数据总和的 10 倍。这是一个很好的例子,说明您需要在数据中心之外开始处理的数据类型,以最大限度地减少通过网络移动和存储 的数据量。此外,它还允许企业对可操作的数据做出实时决策- Bill Galloway,Pivot3 Inc.
应用六:工业操作
工厂车间处理等工业操作需要海量数据的快速响应。这些数据中的大部分被丢弃,但能够通过检测边缘 数据中的异常来使工厂操作员能够及时对工厂车间的问题做出反应。这样可以间接减少停机从而提高生产率。- Randal Kenworthy,Cognizant
应用七:智能建筑
随着我们的会议室和设施变得越来越智能化,将会有一种把所有东西都放到云端的诱惑。考虑到安全性和稳定性,在站点上托管数据将会有一些好处。我们已经看到了基于云的照明在网络中断时可能会令人 沮丧的问题,而工作场所的可靠性甚至更重要。 Luke Wallace, Bottle Rocket
应用八:无人驾驶汽车
汽车行业已投入数十亿资金开发边缘计算技术。为了安全运行,这些车辆需要收集和分析有关其周围环境,方向和天气状况的大量数据,以及与道路上的其他车辆进行通信。- Arnie Gordon,Arlyn Scales
应用九:机顶盒
Edge AI 可以在机顶盒设备上运行一个低占用空间的智能引擎,可以实时分析数据,对 AI 进行编码,在 本地解决问题并向上游服务器提供智能反馈。与基本自动化(边缘机器人流程自动化机器人)相结合, AI 引擎可以自我修复并在本地解决许多问题。- Ankur Garg,Hotify Inc.
1.2 为什么叫k3s?
我们希望安装的 Kubernetes 在内存占用方面只是原来一半的大小。Kubernetes 是一个 10 个字母的单 词,简写为 k8s,所以, Kubernetes 一半大的东西就是有 5 个字母的单词,简写为 K3S。K3S 没有全称,也没有官方的发音。
K3s 适用于以下场景: 1、边缘计算-Edge 2、物联网-IoT 3、CI:持续集成 4、Development:开发 5、ARM 6、嵌入 K8s
由于运行 K3s 所需的资源相对较少,所以 K3s 也适用于开发和测试场景。在这些场景中,如果开发或测试人员需要对某些功能进行验证,或对某些问题进行重现,那么使用 K3s 不仅能够缩短启动集群的时间,还能够减少集群需要消耗的资源。与此同时,Rancher 中国团队推出了一款针对 K3s 的效率提升工 具:AutoK3s。只需要输入一行命令,即可快速创建 K3s 集群并添加指定数量的 master 节点和 worker 节点。
问题 1:什么是 ARM
ARM64 和 ARMv7 都支持二进制文件和多源镜像。k3s 在小到树莓派或大到 AWS a1.4xlarge 32GiB 服务器的环境中均能出色工作。
1.3 k3s架构
1.3.1 单节点的k3s架构
k3s server 节点是运行 k3s server 命令的机器(裸机或者虚拟机),而 k3s Agent 节点是运行 k3s agent 命令的机器。
单点架构只有一个控制节点(在 K3s 里叫做 server node,相当于 K8s 的 master node),而且 K3s 的 数据存储使用 sqlite 并内置在了控制节点上
在这种配置中,每个 agent 节点都注册到同一个 server 节点。K3s 用户可以通过调用 server 节点上 的 K3s API 来操作 Kubernetes 资源。
1.3.2 高可用k3s架构
虽然单节点 k3s 集群可以满足各种用例,但对于 Kubernetes control-plane 的正常运行至关重要的环境,可以在高可用配置中运行 K3s。一个高可用 K3s 集群由以下几个部分组成:
1、K3s Server 节点:两个或者更多的 server 节点将为 Kubernetes API 提供服务并运行其他 control-plane 服务
2、外部数据库:外部数据存储(与单节点 k3s 设置中使用的嵌入式 SQLite 数据存储相反)
1.3.3 边缘计算应用案例分析
背景:
在进行信息化、智能化改造的过程中,首先第一步,就是要获取底层系统的全方位的数据。因此需要部署大量的边缘设备来采集数据、分析数据,通过这些数据进行建模,大量的边缘设备一般离散的分布在不同机房、厂区、甚至是不同的地理区域。
需 求:
运维角度来讲:
1、管理这些边缘设备,保持边缘设备上运行的服务的高可用性;
2、快速的上线、升级;
3、配置的快速更改与应用
二、k3s和k8s如何选择
K8s 和 k3s 各有优劣。若是你要进行大型的集群部署,建议你选择使用 K8s;若是你处于边缘计算等小型 部署的场景或仅仅须要部署一些非核心集群进行开发/测试,那么选择 k3s 则是性价比更高的选择。
云计算场景用 k8s
边缘计算场景用 k3s
k3s 和 k8s 具体有多大的差别?
在实际的应用部署中,几乎没有任何差异,至少到目前为止,我所遇到的场景,k8s 能满足的,k3s 也能满足,相信,通过不断的迭代,k3s 在未来会更完善边缘场景。
能直接学习 k3s 吗?
: k3s 的所有操作跟 k8s 无区别,但是学习还是以 k8s 为主,之后再扩展 k3s
三、安装k3s集群
https://www.cnblogs.com/yangmeichong/p/16659326.html
k3s入门与实战---适配边缘计算场景的轻量级的k8s(一)的更多相关文章
- 在边缘计算场景中使用Dapr
Dapr 是分布式应用程序可移植.事件驱动的运行时, 这里有几个关键字,我们拆开来看一下: 分布式: 代表共享或是分散,在云原生应用上体现为微服务,在边缘计算场景中代表分散的模块,可以做积木式拼接. ...
- SuperEdge: 使用WebAssembly扩展边缘计算场景
作者 SuperEdge 开发者团队 概要 SuperEdge 是 一个开源的分布式边缘计算容器管理系统,用于管理多个云边区域中的计算资源和容器应用. 在当前架构中,这些资源和应用能够作为一个 Kub ...
- 阿里云如何基于标准 K8s 打造边缘计算云原生基础设施
作者 | 黄玉奇(徙远) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复关键词 1219 即可下载本文 PPT 及实操演示视频. 导读:伴随 5G.IoT 的发展,边缘 ...
- JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...
- 关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……
在文章<最近在边缘计算领域,发生了一件足以载入物联网史册的大事…>我曾经提到Kubernetes(简称K8s)将从超大规模云计算环境,被带入到物联网边缘计算场景中. 事情有了新进展,从本周 ...
- 北美KubeCon新风,正把K8S魔力带向边缘计算
作者:DJ 审校:Kevin·Wang 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕.这次北美KubeCon总共吸引了8000多观众参会,创下历 ...
- 边缘计算k8s集群之SuperEdge
什么是边缘计算? 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平台,就近提供最近端服务.其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务.应 ...
- 边缘计算 KubeEdge+EdgeMash
简介 KubeEdge是面向边缘计算场景.专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同.资源协同.数据协同和设备协同等能力 ...
- React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...
- 技术分享预告丨k3s在边缘计算中的应用实践
技术分享是在[Rancher官方微信技术交流群]里以图文直播+QA实时互动的方式,邀请国内已落地经验的公司或团队负责人分享生产落地的最佳实践.记得添加微信小助手(微信号:rancher2)入群,实时参 ...
随机推荐
- CentripetalNet:更合理的角点匹配,多方面改进CornerNet | CVPR 2020
CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好.另外论文提出的十字星变 ...
- KingbaseES V8R3 集群运维系列 -- failover切换后集群自动恢复
案例说明: KingbaseES V8R3集群默认在触发failover切换后,为保证数据安全,原主库需要通过人工介入后,恢复为新的备库加入到集群.在无人值守的现场环境,需要在触发failover ...
- #背包#AT2037 [ARC060A] 高橋君とカード / Tak and Cards
题目 有一个长度为\(n\)的数组\(a\),选择若干个数使它们的平均数为\(A\),问共有多少种方案 分析 设\(dp[i][j]\)表示选择\(i\)个数总和为\(j\)的方案数,那么答案就是\( ...
- Spring 框架模块深度解析:核心容器、数据访问、Web 层与其他关键模块
Spring 可能成为您的所有企业应用程序的一站式商店.但是,Spring 是模块化的,允许您挑选适用于您的模块,而无需引入其他模块.下面的部分提供了 Spring Framework 中所有可用模块 ...
- 可视化库 pygal 生成png中文乱码
解决方法:设置style,style中设置中文字体 代码如下: import pygal from pygal.style import Style import cairosvg style = S ...
- 使用yum安装unixODBC时报错怎么办
使用 yum 安装 unixODBC 时报错怎么办 背景介绍 在使用 yum 安装 unixODBC 时,上报如下错误: [root@mc0-0002 odbc_connection]# yum in ...
- Java实现打包压缩文件或文件夹生成zip以实现多文件批量下载
有时候在系统中需要一次性下载多个文件,但逐个下载文件比较麻烦.这时候,最好的解决办法是将所有文件打包成一个压缩文件,然后下载这个压缩文件,这样就可以一次性获取所有所需的文件了. 下面是一个名为Comp ...
- Leetcode-队列得最大值
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的均摊时间复杂度都是O(1).若队列为空,pop_front ...
- Java多线程之Callable和Future
Java多线程之Callable和Future 本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来 ...
- win7自带屏幕录像工具
win7自带屏幕录像工具 2012-03-28 09:23:05 我来说两句 收藏 我要投稿 相信win7自带的屏幕录像工具很多朋友都没用过甚至没有听说过, 但是这款实 ...