大规模 IoT 边缘容器集群管理的几种架构 -1-Rancher+K3s

简介: 大规模 IoT 边缘容器集群管理的几种架构 -1-Rancher+K3s

Rancher + K3s

Rancher

K3s

简介

Rancher 首页

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

参考架构

Rancher + K3s 边缘容器管理架构

Rancher + K3s 边缘容器管理架构 2

此方案借助 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 等又较为复杂。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
16天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
27天前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
106 3
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
28天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
23天前
|
Kubernetes Cloud Native 持续交付
容器化、Kubernetes与微服务架构的融合
容器化、Kubernetes与微服务架构的融合
41 1
|
23天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
45 1
|
26天前
|
弹性计算 运维 开发者
后端架构优化:微服务与容器化的协同进化
在现代软件开发中,后端架构的优化是提高系统性能和可维护性的关键。本文探讨了微服务架构与容器化技术如何相辅相成,共同推动后端系统的高效运行。通过分析两者的优势和挑战,我们提出了一系列最佳实践策略,旨在帮助开发者构建更加灵活、可扩展的后端服务。
|
1月前
|
Cloud Native 云计算 Docker
云原生技术的崛起:从容器化到微服务架构
云原生技术的崛起:从容器化到微服务架构
|
1月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
1月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用