Kubernetes Pod 串行通信问题
Kubernetes Pod serial communication Problem
当在 docker 容器中创建串行端口时,映射到具有 Linux 操作系统的主机上,这是通过 ‘—device’
标志完成的;
例如docker run -dit --device=/dev/ttyUSB0 --name SerialTest <docker image>
我们想知道 PODs 如何在 Kubernetes 中映射串口。下图是要部署在Rancher中的应用的Pod配置 2.x.
(https://i.imgur.com/RHhlD4S.png)
在节点调度中,我们配置了pods分发到特定的串口节点。此外,当然不可能将串行端口与卷安装映射。所以,我想提出一个问题,因为我在我的 Rancher 2.x 配置中找不到与 docker 的 ‘—device’
标志相关的任何内容。
(https://imgur.com/wRe7Eds.png) "Application configuration in Rancher 2.x"
(https://imgur.com/Lwil7cz.png) "Serial port device connected to the HOST PC"
(https://imgur.com/oWeW0LZ.png) "Volume Mount Status of Containers in Deployed Pods"
(https://imgur.com/GKahqY0.png) "Error log when running a .NET application that uses a serial port"
基于 first diagram 的目标:Kubernetes 抽象涵盖了 pod 与外部世界(就此而言,节点外部)之间的通信,旨在至少处理第 2 层通信(veth,如inter-node/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。
当在 docker 容器中创建串行端口时,映射到具有 Linux 操作系统的主机上,这是通过 ‘—device’
标志完成的;
例如docker run -dit --device=/dev/ttyUSB0 --name SerialTest <docker image>
我们想知道 PODs 如何在 Kubernetes 中映射串口。下图是要部署在Rancher中的应用的Pod配置 2.x.
(https://i.imgur.com/RHhlD4S.png)
在节点调度中,我们配置了pods分发到特定的串口节点。此外,当然不可能将串行端口与卷安装映射。所以,我想提出一个问题,因为我在我的 Rancher 2.x 配置中找不到与 docker 的 ‘—device’
标志相关的任何内容。
(https://imgur.com/wRe7Eds.png) "Application configuration in Rancher 2.x"
(https://imgur.com/Lwil7cz.png) "Serial port device connected to the HOST PC"
(https://imgur.com/oWeW0LZ.png) "Volume Mount Status of Containers in Deployed Pods"
(https://imgur.com/GKahqY0.png) "Error log when running a .NET application that uses a serial port"
基于 first diagram 的目标:Kubernetes 抽象涵盖了 pod 与外部世界(就此而言,节点外部)之间的通信,旨在至少处理第 2 层通信(veth,如inter-node/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。