建立码头工人容器队列来模拟物联网设备?



我正在尝试设计一种好方法来启动一组充当物联网设备的 docker 容器,每个容器的配置略有不同。

在每个容器中,我都有一个模拟某些硬件设备(例如温度传感器)的应用程序,并且每个应用程序都有一个唯一的"身份"。示例sensor1sensor2sensor3等以及其他一些可能有所不同的配置。

我还想根据正在测试的用例来扩展和缩减虚拟设备的数量。

我能想到的方法是通过 shell 脚本将唯一属性传递给每个容器,或者让每个容器访问数据库或其他存储,以便在启动时从可用配置池中检索其唯一配置。

这样,相同的应用将在每个容器中运行,但其配置将是唯一的。然后,他们将开始将数据发送到某个终结点,我将他们的遥测有效负载作为数据流进行处理。

对于 Kubernetes 解决方案,容器似乎必须连接到一些通用数据存储才能获得其配置,因为不可能将一组唯一的属性传递给每个容器?

  1. 关于身份,大卫已经提到了StatefulSet。

与部署一样,状态集管理基于 相同的容器规格。与部署不同,有状态集维护 每个 Pod 的粘性标识。这些 Pod 是从 相同的规范,但不可互换:每个规范都有一个持久的 它在任何重新计划中维护的标识符。

  1. 关于缩放。如果我理解正确,你需要一个副本集。

副本集由字段定义,包括一个选择器 指定如何识别它可以获取的 Pod,多个副本 指示它应该维护多少个 Pod,以及一个 Pod 模板 指定它应该创建的新 Pod 的数据,以满足 副本条件。然后,副本集通过创建 并根据需要删除 Pod 以达到所需的数量。当一个 ReplicaSet 需要创建新的 Pod,它使用其 Pod 模板。

  1. 对于配置/属性部分,ConfigMaps是你需要的。

配置映射绑定配置文件、命令行参数、 环境变量、端口号和其他配置工件 在运行时迁移到 Pod 的容器和系统组件。

如果有帮助,请告诉我。

最新更新