前文回顾

大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介

Reference:

IoT 边缘计算系列文章

Rancher + K3s

简介

  • Rancher: Kubernetes 统一管理平台, Rancher 是为采用容器的团队提供的一个完整的软件栈。它解决了管理多个 Kubernetes 集群的操作和安全挑战,同时为 DevOps 团队提供了运行容器化工作负载的集成工具。
  • K3s: 完美适配边缘, K3s 是一个高可用的、经过认证的 Kubernetes 发行版,设计用于无人值守、资源受限的远程地点或物联网设备内的生产工作负载。K3s 被打包成一个<60MB的二进制文件,减少了安装、运行和自动更新一个生产型 Kubernetes 集群所需的依赖性和步骤。ARM64 和 ARMv7 都被支持,二进制文件和多架构镜像都可以使用。K3s 在小到 Raspberry Pi,大到 AWS a1.4xlarge 32GiB 服务器上都能很好地工作。

参考架构

此方案借助 Kubernetes 的生态,并且 100%开源,无锁定,方便插件扩展,也提供了 UI 入口以提供良好的用户体验。 并且核心完全是基于 Kubernetes, 具备非常好的群众基础。

  • “云”中部署一套 Rancher 集群,Rancher 负责管理下属所有的“边”中的 K3s 集群,Rancher 集群中同时可以部署云端的业务应用,负责和边缘侧业务系统同步, 以及下发数据或指令。
  • “边”设备中安装轻量化操作系统 MicroOS(一种不可变 OS,在本文不是重点,不展开),以及 K3s,K3s 中部署“边”的业务应用,供“端”连接使用。
  • “端”作为业务应用的最边缘端,通过网络连接“边”,完成业务组网,形成以“边”为中心的业务应用。

方案优点

  • 云边协同: 云侧 Rancher 与边缘侧 K3s 集群之间网络(通过 rancher-cluster-agent 建立 websocket 隧道)连通时 ,可通过 Rancher 管理下属所有的 K3S 集群,如观测各个 K3s 集群运行状态,其上业务应用运状态等; 同 时 Rancher 所在集群中部署的云端业务应用可向边缘侧业务应用下发数据或指令 。
  • 边缘自治: 无论网络如何,边缘侧 K3s 集群均可以自行运行(就是一套精简的 K8s), 无需依赖云端 Rancher, 实现运行环境的边缘自治;其上运行的边缘侧业务应用如果不依赖云端应用即可正常运行,则可以做到业务的边缘自治。
  • 轻量化 K8s: 使用轻量化的 K8s 解决方案 K3s 作为运行环境,可在硬件资源紧张的情况下提供基于 K8s 的容器服务,使业务享受 K8s 的技术红利。
  • 100%开源: 100%开源,无锁定
  • 原生 Kubernetes 生态: 借助完全兼容 Kubernetes 的生态,方便插件扩展,且开箱即用提供了:flannel, load balancer service, Traefik, coredns...
  • UI 精美: 提供了 UI 入口以提供良好的用户体验
  • GitOps: Rancher 默认集成 GitOps 工具 - Fleet, 提供 GitOps 自动化体验。
  • 运维简单: Rancher 和 K3s 文档齐全,提供很多方便的运维自动化工具。
  • 完整的企业功能: 如:认证、鉴权、单点登录、API...

方案缺点

  • K3s 相比纯容器占用资源还是略多
  • rancher-cluster-agent 占用资源较多: 在我的使用经验中,该 agent 可能占用 > 1G 内存的资源,这在边端是难以承受的。
  • 网络复杂且较弱: K3s CNI 默认是 flannel, 对于边缘复杂的网络情况没有做进一步的优化和适配。如果边是 K3s Server, 端是 K3s Agent, 边端网络也不稳定,对于这种情况 K3s 基于原生 K8s 网络的能力是无法做到很好应对的。相比 Kubeedge, 边缘网络适配能力弱;相比纯容器方案,flannel/load balancer service, Traefik, coredns 等又较为复杂。

继续阅读

  1. 大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad
  2. 大规模 IoT 边缘容器集群管理的几种架构-3-Portainer
  3. 大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge
  4. 大规模 IoT 边缘容器集群管理的几种架构-5-总结

参考文档

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s的更多相关文章

  1. 容器、容器集群管理平台与 Kubernetes 技术漫谈

    原文:https://www.kubernetes.org.cn/4786.html 我们为什么使用容器? 我们为什么使用虚拟机(云主机)? 为什么使用物理机? 这一系列的问题并没有一个统一的标准答案 ...

  2. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  3. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  7. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  9. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  10. Kubernetes容器集群管理环境 - 完整部署(中篇)

    接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...

随机推荐

  1. Android网络请求(2)

    Android网络请求(2) 在android网络开发中,除get请求外常见的还有post.put.delete这三种,接下来我们将详细讲解这三种请求及参数 GET请求 我们使用过get请求了,对于我 ...

  2. Python基础之数据库:5、创建表的完整语法、MySQL数据类型

    一.创建表的完整语法 1.创建表的语法 create table 表名( ​ 字段名1 字段类型(数字) 约束条件, ​ 字段名2 字段类型(数字) 约束条件, ​ 字段名3 字段类型(数字) 约束条 ...

  3. kettle 链接oracle12c

    jdbc连接cdb数据库时,url兼容以下2种模式: "jdbc:oracle:thin:@192.168.75.131:1521:oracle12c" "jdbc:or ...

  4. Excel二维码图片生成器

    Excel二维码图片生成器 它可以将excel文件的数据,每行数据生成一张二维码图片,并保存到电脑.软件无需安装,解压后即可直接使用,无需联网,操作简便快捷. 软件下载地址:点此下载 步骤1:导入事先 ...

  5. 【每日一题】【排序】2021年11月13日-215. 数组中的第K个最大元素※

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素. 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 方法1:调库 class Solution ...

  6. appium环境搭建(从入门到放弃)

    一.appium环境搭建 1.python3 python3的下载安装这里就不多做介绍了,当然你也可以选择自己喜欢的语音,比如java.... 2.jdk 1)下载地址 官网(需登录账号): http ...

  7. pycharm全局搜索

    方法有:1.使用[Ctrl+N]快捷键按文件名搜索py文件: 2.使用[Ctrl+shift+N]快捷键按文件名搜索所有类型的文件: 3.使用[ctrl+shift+f]快捷全局字符串搜索: 3.使用 ...

  8. 网络爬虫之requests模块,自动办公领域之openpyx模块

    一.第三方模块的下载与使用 第三方模块:别人写的模块,一般情况下功能都特别强大    我们如果想使用第三方模块,第一次必须先下载,后面才可以反复使用(等同于内置模块) 下载第三方模块的方式 1. pi ...

  9. 02- 快速入门MybatisPlus

    创建表 现有一张 User 表,其表结构如下: id name age email 1 Jone 18 test1@baomidou.com 2 Jack 20 test2@baomidou.com ...

  10. 【运维笔录】局域网实现HTTPS访问,只需Nginx + mkcert

    1)下载安装mkcert wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1 ...