无法登录在 kubernetes 集群内运行的 docker 容器中的 iSCSI 启动器
我已经安装了open-iscsi
在 kubeminion 内以特权模式打包在 docker ubuntu 容器中。 iscsi 目标正在运行,并且 iscsi 启动器发现返回正确的启动器名称 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 discover 和 login 都会成功。 iscsi 期望主机的网络服务以特权访问运行。命令应该是,
docker run -it --privileged --net=host name:tag
将网络设置为主机后,容器将共享主机的网络堆栈,并且主机的所有接口(interface)都可用于容器。容器的主机名将与主机系统上的主机名匹配。
有关更多详细信息,请参阅文档:
https://docs.docker.com/engine/reference/run/#network-settings
注意:标志 --net 适用于较旧和最新版本的 docker,--network 仅适用于最新的 docker 版本。
关于docker - 无法登录 kubernetes 集群中 docker 容器中的 iSCSI 启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46981558/