Kubernetes节点设备端口(USB)映射到POD?或者 Swarm 服务——设备映射
Posted
技术标签:
【中文标题】Kubernetes节点设备端口(USB)映射到POD?或者 Swarm 服务——设备映射【英文标题】:Kubernetes node Device port (USB) mapping to POD? Or Swarm service --device mapping 【发布时间】:2017-07-30 14:15:31 【问题描述】:是否可以将工作节点的设备端口(USB 端口)映射到 POD?
类似于docker create --device=/dev/ttyACM0:/dev/ttyACM0
有可能吗?我检查了参考文档,但找不到任何东西。
在 Docker 服务中,是否可以将--device port
映射到服务容器(如果我只运行 1 个容器)?
【问题讨论】:
【参考方案1】:这似乎是不可能的。 v1.Container 对象的相关 API 定义文档不包含任何容器引擎特定参数或传递给容器引擎 (click) 参数的任何参数。
此外,命令式速记 kubectl run ...
不提供任何传递给容器引擎 (here's the documentation) 的参数。
虽然这不能解决您的问题,但我希望我的回答仍然可以帮助您在文档的帮助下回答类似的问题。
【讨论】:
是的,我在发布之前浏览了这些文档。这就是我所理解的,而 docker run --device=.... 允许将设备端口映射到容器。但 Kubernetes 没有。码头服务也没有。只有在启动单个容器时才有可能。一定有道理。您的回答仍然可以帮助我看到第二种意见。 .非常感谢。 :) 暂时没有。即使很难你也可以做到docker service create --mount source=/dev/something,target=/dev/something,type=bind ...
不支持--privilege
也不支持--cap-add
(请参阅github.com/docker/docker/issues/24862)【参考方案2】:
你实际上可以让它工作。您需要以特权运行容器并使用这样的 hostPath:
containers:
- name: acm
securityContext:
privileged: true
volumeMounts:
- mountPath: /dev/ttyACM0
name: ttyacm
volumes:
- name: ttyacm
hostPath:
path: /dev/ttyACM0
【讨论】:
非常感谢。我现在正在尝试。有没有机会你也知道 docker 服务的任何技巧? :) 问候。 人们可能希望在带有hostPath
的卷上指定type: CharDevice
或type: BlockDevice
,以便您可以进行一些最小的配置检查并明确说明开发人员的意图。以上是关于Kubernetes节点设备端口(USB)映射到POD?或者 Swarm 服务——设备映射的主要内容,如果未能解决你的问题,请参考以下文章