【问题标题】:Kubernetes node Device port (USB) mapping to POD? Or Swarm service --device mappingKubernetes节点设备端口(USB)映射到POD?或者 Swarm 服务——设备映射
【发布时间】:2017-07-30 14:15:31
【问题描述】:

是否可以将工作节点的设备端口(USB 端口)映射到 POD? 类似于docker create --device=/dev/ttyACM0:/dev/ttyACM0

有可能吗?我检查了参考文档,但找不到任何东西。

在 Docker 服务中,是否可以将--device port 映射到服务容器(如果我只运行 1 个容器)?

【问题讨论】:

    标签: docker kubernetes swarm kubernetes-pod


    【解决方案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: CharDevicetype: BlockDevice,以便您可以进行一些最小的配置检查并明确说明开发人员的意图。
    猜你喜欢
    • 2011-03-30
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多