1.大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介[1]2.大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s[2]
📚️Reference: IoT 边缘计算系列文章[3]
Nomad_PrimaryLogo_FullColor
Nomad: 一个简单而灵活的调度器和编排器,可在内部和云端大规模部署和管理容器和非容器化的应用程序
Nomad 使开发者能够使用声明式的基础设施即代码来部署应用程序。Nomad 使用 bin packing 来有效地安排工作并优化资源利用。
Nomad 凭借其简单性、灵活性、可扩展性和高性能与相关工具区分开来。Nomad 的协同作用和整合点 HashiCorp Terraform、Consul 和 Vault 使其特别适合轻松集成到 组织的现有工作流程,最大限度地减少关键计划的上市时间。
使用 Nomad 来安排更接近用户的边缘工作负载。用 Nomad 的本地服务发现连接边缘服务。无缝地处理不稳定的 Nomad 客户端节点连接。
Nomad UI
当采用边缘计算/容器时,会遇到诸如 管理异构设备(不同的处理器、操作系统等), 资源受限的设备,以及间歇性连接。
Nomad 解决了这些挑战,使其成为一个有吸引力的边缘协调者。Nomad 客户端代理是单个二进制文件,占用空间小,资源有限消费,以及在不同类型的设备上运行的能力。另外 Nomad 支持地理位置较远的客户端,这意味着 Nomad 服务器群集不需要在客户端附近运行。
通过 Nomad 1.3,原生服务发现 (native service discovery) 简化了连接 Nomad 任务的过程,在那里你不需要使用单一的服务网格,并且不再需要管理一个单独的 Consul 集群。Nomad 的原生服务发现还消除了在每个边缘设备上安装 Consul 代理的需要。这进一步减少了 Nomad 的资源占用,因此你可以在边缘运行和支持更多的工作负载。此外,断开的客户端分配可以优雅地重新连接,处理边缘设备遇到网络延迟或临时连接损失的情况。
如下图,
1.本地数据中心或云,将托管 Nomad 服务器集群和一个客户端用于统一管理2.边缘端运行 Nomad 客户端。
Nomad 参考架构
•部署容器和旧版应用程序: Nomad 作为协调程序的灵活性使组织能够在同一基础架构上同时运行容器、旧版和批处理应用程序。Nomad 为旧版应用程序带来了核心编排优势,而无需进行容器化。•简单可靠:Nomad 作为单个二进制文件运行,并且完全独立 - 将资源管理和调度结合到单个系统中。Nomad 不需要任何外部服务进行存储或协调。Nomad 自动处理应用程序、节点和驱动程序故障。Nomad 是分布式和弹性的,使用领导者选举和状态复制在发生故障时提供高可用性。•资源占用少: Nomad 客户端代理是单个二进制文件,占用空间小,资源使用少;Nomad 1.3 以上版本的 native service discovery 还消除了在每个边缘设备上安装 Consul agent 的需要。这进一步减少了 Nomad 的资源占用。•设备插件和 GPU 支持:Nomad 为 GPU 工作负载(如机器学习(ML)和人工智能(AI))提供内置支持。Nomad 使用设备 插件[4] 来自动检测和利用来自硬件设备(如 GPU、FPGA 和 TPU)的资源。插件很丰富,支持:•Docker•Isolated Fork/Exec•Java•Podman•QEMU•Raw Fork/Exec•containerd•Nvidia•USB•...•经过验证的可扩展性:Nomad 乐观地并发,可提高吞吐量并减少工作负载的延迟。Nomad 已被证明可以在实际生产环境中扩展到 10K +节点的集群。•HashiCorp生态系统:Nomad 与 Terraform,Consul,Vault 无缝集成,用于配置,服务发现和机密管理。满足更复杂的边缘容器管理需求。
•不兼容 Kubernetes 生态: Nomad 是与 Kubernetes 完全不同的另一套容器编排/调度解决方案,所以不兼容 Kubernetes 生态。需要付出相关的学习成本和额外的人力成本。•管理功能较少: 也是因为 不兼容 Kubernetes 生态,所以完全无法享受 Kubernetes 庞大生态带来的功能红利。管理功能相对较少。如果需要额外的自动化能力,需要集成 Terraform; 需要额外的服务发现能力,需要集成 Consul; 需要额外的机密管理能力,需要集成 Vault.•UI 简单
1.大规模 IoT 边缘容器集群管理的几种架构-3-Portainer[5]2.大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge[6]3.大规模 IoT 边缘容器集群管理的几种架构-5-总结[7]
•Managing Applications at the Edge with HashiCorp Nomad[8]
[1]
大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介: https://ewhisper.cn/posts/10785/
[2]
大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s: https://ewhisper.cn/posts/32695/
[3]
IoT 边缘计算系列文章: https://ewhisper.cn/tags/Edge/
[4]
插件: https://developer.hashicorp.com/nomad/docs/devices
[5]
大规模 IoT 边缘容器集群管理的几种架构-3-Portainer: https://ewhisper.cn/posts/3806/
[6]
大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge: https://ewhisper.cn/posts/2631/
[7]
大规模 IoT 边缘容器集群管理的几种架构-5-总结: https://ewhisper.cn/posts/35653/
[8]
Managing Applications at the Edge with HashiCorp Nomad: https://www.hashicorp.com/blog/managing-applications-at-the-edge-with-hashicorp-nomad