无法登录 kubernetes 集群中 docker 容器中的 iSCSI 发起程序

Unable to login in iscsi initiator in docker container within a kubernetes cluster

无法登录 kubernetes 集群内 docker 容器 运行 中的 iSCSI 启动器

我已经在 kubeminion 中以特权模式在 docker ubuntu 容器中安装了 open-iscsi 包。 iSCSI 目标是 运行 并且 iSCSI 启动器发现 returns 正确的启动器名称 iqn。当我尝试登录时,我得到这个:

ERROR : iscsiadm: got read error (0/111), daemon died? iscsiadm: Could not login to [iface: default, target: iqn.2016-09.com.abcdefg.xyza:name, portal: 10.102.83.21,3260]. iscsiadm: initiator reported error (18 - could not communicate to iscsid) iscsiadm: Could not log into all portals

我试过service iscsid restart并用iscsid -d 8 -f命令调试,仍然登录不成功

在集群中 docker 运行 添加 --net=host 标志和 --privileged 标志,iscsi 发现和登录都会成功。 iscsi 期望主机的网络服务 运行 具有特权访问权限。命令应该是, docker run -it --privileged --net=host name:tag 将网络设置为托管容器后,容器将共享主机的网络堆栈,并且主机的所有接口都可用于容器。容器的主机名将与主机系统上的主机名匹配。

有关详细信息,请参阅文档: https://docs.docker.com/engine/reference/run/#network-settings

注意:标志 --net 适用于 docker 的旧版本和最新版本,--network 仅适用于最新的 docker 版本。