什么是边缘计算

边缘计算,是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。

边缘计算在具有低时延、高带宽、高可靠、海量连接、 异构汇聚和本地安全隐私保护等特点的应用场景,如智能交通、智慧城市、智慧工厂和智能家居等行业或领域,存在非常突出的优势。比如在自动驾驶领域,边缘计算是实现自动驾驶的关键。智能汽车本质上可以看作是一台车轮上的大型高功率计算机,其通过多个传感器收集数据。为了使这些车辆安全可靠地运行,这些传感器需要立即响应周围环境,处理速度的任何滞后都可能是致命的。同时边缘计算将更多的数据计算和存储从“核心”下沉到“边缘”,部署于接近数据源的地方,一些数据不必再经过网络到达云端处理,从而降低时延和网络负荷,也提升了数据安全性和隐私性。

什么是SuperEdge?

SuperEdge是Kubernetes原生的开源的边缘容器方案,它将Kubernetes强大的容器管理能力扩展到边缘计算场景中,针对边缘计算场景中常见的技术挑战提供了解决方案,如:单集群节点跨地域、云边网络不可靠、边缘节点位于NAT网络等。这些能力可以让应用很容易地部署到边缘计算节点上,并且可靠地运行。

项目说明

项目地址:

https://github.com/superedge/superedge

SuperEdge可以帮助您很方便地把分布在各处的计算资源放到一个Kubernetes集群中管理,包括但不限于:边缘云计算资源、私有云资源、现场设备,打造属于您的边缘PaaS平台。

SuperEdge支持所有Kubernetes资源类型、API接口、使用方式、运维工具,无额外的学习成本。也兼容其他云原生项目,如:Promethues,使用者可以结合其他所需的云原生项目一起使用。

SuperEdge项目由以下公司共同发起:腾讯、Intel、VMware、虎牙直播、寒武纪、首都在线和美团。

特点

SuperEdge具有如下特性:

  • Kubernetes 原生:SuperEdge 以无侵入的方式将 Kubernetes 强大的容器编排、调度能力拓展到边缘端,其原生支持 Kubernetes,完全兼容 Kubernetes 所有 API 及资源,无额外学习成本

  • 边缘自治:SuperEdge 提供 L3 级边缘自治能力,当边缘节点与云端网络连接不稳定或处于离线状态时,边缘节点可以自主工作,化解了网络不可靠所带来的不利影响

  • 分布式节点健康监测:SuperEdge 是业内首个提供边缘侧健康监测能力的开源容器管理系统。SuperEdge 能在边缘侧持续守护进程,并收集节点的故障信息,实现更加快速和精准的问题发现与报告。此外,其分布式的设计还可以实现多区域、多范围的监测和管理

  • 内置边缘编排能力:SuperEdge 能够自动部署多区域的微服务,方便管理运行于多个地区的微服务。同时,网格内闭环服务可以有效减少运行负载,提高系统的容错能力和可用性

  • 内网穿透:SuperEdge 能够保证 Kubernetes 节点在有无公共网络的情况下都可以连续运行和维护,并且同时支持传输控制协议(TCP)、超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)

体系架构

使用ECK免费管理自己的边缘节点

边缘容器服务(Edge Cloud Kubernetes Engine,简称 ECK)是腾讯云容器服务基于SuperEdge推出的用于从中心云管理边缘云资源的容器系统。边缘容器服务完全兼容原生 Kubernetes、支持在同一个集群中管理位于多个机房的节点、一键将应用下发到所有边缘节点,并且具备边缘自治和分布式健康检查能力。

优势

简而言之,言而总之,最大的优势就是开箱即用,免费托管。不过目前仅支持创建一个集群。

ECK基于SuperEdge打造,使用ECK和容器服务托管集群一样,不会收取托管的 Master、Etcd 等管理方面资源的费用。

计算节点由我们自己掌握和提供,边缘容器服务不收取额外费用。

敞开来讲,他有如下优势:

  • 原生支持

边缘容器服务紧跟社区,支持最新的 Kubernetes 版本及原生的 Kubernetes 集群管理方式,开箱即用。

  • 跨机房可用

边缘容器服务是一种 Master 组件托管在云端,worker 节点可位于任意地点的 Kubernetes 服务,用户无须提供 Master 组件所需资源。

  • 安全可靠

边缘容器服务支持内外网证书分离,节点权限最小化控制来最大限度避免集群访问控制权限泄露问题。云边通信使用 TLS 加密,防止系统管理数据泄露或被篡改。

  • 系统容灾

边缘容器服务针对云边通信网络场景提供了可靠的边缘自治能力,并且具备分布式集群健康检查能力,可更准确地判定 pod 迁移时机。

  • 系统运维便利

借助于腾讯多年积累的隧道技术,即使边缘设备不具备公网地址,管理员也可以从云端直接登录运行在边缘节点上的容器。

  • 多云管理

边缘容器服务不限定计算资源。例如,公有云、私有云、腾讯云或其他云计算资源。

创建边缘集群

集群的创建可以参考:

https://cloud.tencent.com/document/product/457/42889

值得注意的是,需开启外网访问。

添加节点

集群创建完成后,我们就可以添加边缘节点了。这里可以添加本地的终端,也可以添加其他云的主机,相关条件如下:

  • 节点来源:可使用 云服务器控制台 或 边缘计算机器控制台 中已有的服务器、其他平台或自建机房的服务器。

  • 节点处理器:支持 x86_64、ARM、ARM64。

  • 支持的节点操作系统如下:

    • Ubuntu 18.04/16.04

    • CentOS 7.6/7.5/7.4

    • Tencent Linux Release 2.4/2.2 (Final)

    • SUSE Linux Enterprise Server 12 SP3

    • Debian 9.0

  • 请确保需添加节点已安装 wget、systemctl 及 iptable。

  • Centos 7参考安装脚本如下所示(自带systemctl):

  • #安装wget
    yum -y install wget
    #安装iptables
    yum install -y iptables
    #安装iptables-services
    yum install iptables-services
    
  • 节点网络需具备主动访问公网能力。

准备好边缘节点了之后,笔者推荐大家使用脚本来添加节点,如下图所示:

点击【下一步】,就可以获得一段脚本:

我们可以在自己的机器上开始操作了。在开始之前,我们需要确保该节点已安装 wget、systemctl 及 iptable,并且最好是一台干净的终端。接下来我们就可以执行安装了:

直到:

在执行脚本的时候,这里可能会存在以下问题(已反馈):

  • 操作文档(https://cloud.tencent.com/document/product/457/42890)和实际操作对不上,需要将上面的edgectl脚本打开查看相关逻辑进行操作:

    • -n:节点名称,在集群内必须是唯一的,是必须的

    • -i:节点内网通信使用的网卡,可不填

    • 其支持Install、check、clear等命令,这里我们需要使用install命令进行安装

    • install命令有两个参数:

  • 执行成功后,会输出上图中的“success-message”的内容,如果执行失败,控制台不会返回任何内容,需要查看上图中的日志文件。

  • 提示执行成功后,可能会在集群中无法看到自己的节点,目前已确定是执行脚本对kubelet状态判断逻辑有问题,在大家看到这篇教程时,应该已经修复了。

使用Kubectl管理边缘集群

在前面的教程我们已经详细讲述过相关的教程了,这里就不赘述了。Kubectl的安装和集群连接请参考以下文档:

https://cloud.tencent.com/document/product/457/42894

添加工作负载

边缘集群搭建好了,我们先来运行一个Demo:

  • 部署一个dotnet-samples demo程序

  • 创建Service,开放端口30500(注意配置边缘节点的防火墙)

Yaml如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "1"generation: 1labels:k8s-app: dotnet-samplesqcloud-app: dotnet-samplesname: dotnet-samplesnamespace: default
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s-app: dotnet-samplesqcloud-app: dotnet-samplesstrategy:rollingUpdate:maxSurge: 1maxUnavailable: 0type: RollingUpdatetemplate:metadata:annotations:edge.tke.cloud.tencent.com/cpu: "1"edge.tke.cloud.tencent.com/mem: 2GicreationTimestamp: nulllabels:k8s-app: dotnet-samplesqcloud-app: dotnet-samplesspec:containers:- image: mcr.microsoft.com/dotnet/samples:aspnetappimagePullPolicy: IfNotPresentname: dotnet-samplesresources:limits:cpu: 500mmemory: 1Girequests:cpu: 250mmemory: 256MisecurityContext:privileged: falseterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstimagePullSecrets:- name: qcloudregistrykeyrestartPolicy: AlwaysschedulerName: default-schedulerterminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:name: dotnet-samplesnamespace: default
spec:externalTrafficPolicy: Clusterports:- name: tcp-80-80nodePort: 30500port: 80protocol: TCPtargetPort: 80selector:k8s-app: dotnet-samplesqcloud-app: dotnet-samplessessionAffinity: Nonetype: NodePort

创建成功后,访问后如下所示(注意开放端口):

最后

在边缘计算场景下,其实还有很多痛点,比如当一个集群横跨多个地域,如何控制工作负载创建的节点位置?如何对各服务流量进行管控?同时,边缘容器分布式节点状态判定机制也是存在特殊性的,因为边缘弱网络会触发 Kubernetes 驱逐机制,这可能会引起不符合预期的 Pod 驱逐动作。这些问题,大家可以参考官方帮助文档,里面都有详细的回答。

回归正题,利用边缘集群我们可以干很多事情,连接和管理本地、客户所在地、各云厂商的机房、世界的各个终端。如何利用它搭建一个管道,锻炼技术,学习技术,我们下回分解。

如果在添加节点的过程中碰到问题,可以参考笔者之前的教程、博客和书籍《Docker+Kubernetes应用开发与快速上云》来解决问题以及查看日志。

集群故障处理之处理思路以及听诊三板斧(三十四)

转载是一种动力 分享是一种美德

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

QQ群:

编程交流群<85318032>

产品交流群<897857351>

边缘计算k8s集群之SuperEdge相关推荐

  1. Addon SuperEdge 让原生 K8s 集群可管理边缘应用和节点

    作者 梁豪,腾讯TEG工程师,云原生开源爱好者,SuperEdge 开发者,现负责TKEX-TEG容器平台运维相关工作. 王冬,腾讯云TKE后台研发工程师,专注容器云原生领域,SuperEdge 核心 ...

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

    作者| 郑超 阿里云高级开发工程师 随着物联网技术以及 5G 技术的高速发展,将云计算的能力延伸至边缘设备端,并通过中心进行统一交付.管控,已成为云计算的重要发展趋势.为服务更多开发者把握这一趋势,5 ...

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

    作者| 郑超 阿里云高级开发工程师 随着物联网技术以及 5G 技术的高速发展,将云计算的能力延伸至边缘设备端,并通过中心进行统一交付.管控,已成为云计算的重要发展趋势.为服务更多开发者把握这一趋势,5 ...

  4. 如何在 Serverless K8s 集群中低成本运行 Spark 数据计算?

    作者 | 柳密 阿里巴巴阿里云智能 本文整理自<Serverless 技术公开课> 导读:本节课主要介绍如何在 Serverless Kubernetes 集群中低成本运行 Spark 数 ...

  5. 如何在Rancher 2.2 Preview2上部署和管理多K8s集群应用

    Rancher 2.2 Preview2于近日全面发布,这一版本包含了许多K8S集群操作的强大特性.本文将详细介绍多集群应用这一特性,让您可以在短时间内更新集群,大大提升工作效率. 近日,全球领先的容 ...

  6. 如何在Rancher 2.2 Preview2上部署和管理多K8s集群应用 1

    2019独角兽企业重金招聘Python工程师标准>>> Rancher 2.2 Preview2于近日全面发布,这一版本包含了许多K8S集群操作的强大特性.本文将详细介绍多集群应用这 ...

  7. 万级K8s集群背后etcd稳定性及性能优化实践

    作者:唐聪, 腾讯 CSIG 后台开发工程师 本文旨在帮助大家了解 etcd集群场景下稳定性与性能优化经验引的容量,避免给后面留坑. 背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云 ...

  8. master节点重置后添加node报错_超强教程!在树莓派上构建多节点K8S集群!

    在很长一段时间里,我对于在树莓派上搭建Kubernetes集群极为感兴趣.在网络上找到一些教程并且跟着实操,我已经能够将Kubernetes安装在树莓派上,并在三个Pi集群中工作.然而,在master ...

  9. Linux云计算虚拟化-使用rancher搭建k8s集群并发布电商网站

    文章目录 Linux云计算虚拟化-使用Rancher搭建k8s集群并使用lnmp架构发布电商网站 1. Rancher介绍 2. 使用Rancher搭建k8s集群 2.1 实验环境介绍 2.2 在ra ...

最新文章

  1. 邬贺铨院士:边缘计算“新十问”
  2. 80%的Oracle JDK用户另有想法
  3. CentOS学习笔记--目录配置
  4. 音频处理一:(音频基本信息)
  5. centos7启动dhcp失败_4:Nginx服务启动、停止、重启
  6. postmessage 游戏窗口内无效_前端的微前端在交通项目内的应用实践
  7. C++ 复制字符串/字符数组
  8. Mybatis-plus 大数据量数据流式查询通用接口
  9. 鸿蒙车载智慧屏评测,华为鸿蒙系统初体验,华为智慧屏评测,功能超乎想象
  10. Word插入插图清单目录、附表清单目录
  11. 天堂2服务端服务器名字修改,如何制作L2J天堂2单机版源码服务端教程.doc
  12. 用于登录的mysql语句_mysql常用语句
  13. plc原理及应用_PLC编程与应用 适合初学者
  14. Excel批量复制公式、删除空白行
  15. 2014年第五届蓝桥杯C/C++程序设计本科B组省赛-史丰收速算
  16. 结构建模设计——Solidworks软件之草图绘制中借助新建基准面实现在曲面表面绘制特征的实现步骤总结
  17. 显示器颜色偏色的排查过程(偏黄、偏红、偏蓝、偏绿等)
  18. 史上最完美的Android沉浸式状态导航栏攻略
  19. python和C++
  20. C语言实现9*9乘法口诀表

热门文章

  1. Spring实战Day2
  2. SQL 查询数据库中包含指定字符串的相关表和相关记录
  3. 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING (SORT)
  4. Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结
  5. iOS6.0以上版本,关于NSDateFormatter的问题
  6. 解决VS2010 beta2 安装后html标签和script智能提示不起作用的问题
  7. H5 video 开发问题及相关知识点
  8. JavaFX 一 出生新手村(阅读小规则)
  9. 自定义View的三个构造函数
  10. js温故而知新11(AJAX)——学习廖雪峰的js教程