Kubernetes Pod串行通信问题

时间:2019-09-06 09:05:57

标签: kubernetes rancher

在使用Linux操作系统的主机上映射的docker容器中创建串行端口时,这是通过‘—device’标志完成的;

例如docker run -dit --device=/dev/ttyUSB0 --name SerialTest <docker image>

我们想知道如何在Kubernetes中将POD映射为串行端口。下图显示了要在Rancher 2.x中部署的应用程序的Pod配置。

https://i.imgur.com/RHhlD4S.png

在节点调度中,我们已将Pod配置为通过串行端口分发到特定节点。另外,当然不可能将串行端口与卷挂载相对应。因此,我想提出一个问题,因为在我的Rancher 2.x配置中找不到与Docker的‘—device’标志相关的任何东西。

https://imgur.com/wRe7Eds.png)“ Rancher 2.x中的应用程序配置”

https://imgur.com/Lwil7cz.png)“已将串行端口设备连接到HOST PC”

https://imgur.com/oWeW0LZ.png)“已部署的容器中容器的卷安装状态”

https://imgur.com/GKahqY0.png)“运行使用串行端口的.NET应用程序时的错误日志”

1 个答案:

答案 0 :(得分:0)

基于first diagram的目标:涵盖Pod与外界(就此而言,在节点外部)之间的通信的Kubernetes抽象旨在至少处理第2层通信( veth ,如在节点间/ pod通信中一样。

没有详细说明为什么无法在Pod中映射设备卷,所以我想知道您是否尝试使用特权容器like in this reference

  containers:
  - name: acm
    securityContext:
      privileged: true
    volumeMounts:
    - mountPath: /dev/ttyACM0
      name: ttyacm
  volumes:
  - name: ttyacm
    hostPath:
      path: /dev/ttyACM0

Rancher可能start containers in privileged mode