我正在尝试使用CoreOS上的rkt中的iscsi插件启动kubernetes,并使用这里的指令。问题是iscsi守护进程无法启动,因此我得到一个错误,无法将卷挂载到吊舱。
iscsi_util.go:112] iscsi: failed to sendtargets to portal 156.64.48.59:3260
error: iscsiadm: Failed to load module tcp: No such file
iscsiadm: Could not load transport tcp.Dropping interface default.
[disk_manager.go:50] failed to attach disk
iscsi: failed to setup
kubelet.go:1780] Unable to mount volumes for pod ...我试图在rkt容器中挂载整个/dev/,但这对我没有帮助。
发布于 2016-06-20 14:11:04
为了找到一个有效的解决方案,我不得不:
sudo modprobe iscsi_tcp预先初始化tcp模块,因为它需要用于ascsiadm。但是CoreOS加载模块"视需要而定“,由于某些原因,它在rkt容器中无法工作。
echo "InitiatorName=iqn.2001-12.com.mycompany:volume.openiscsi-initiator" > /etc/iscsi/initiatorname.iscsi至少有一些发起者名为需要。
我还在CoreOS中填写了CoreOS,也许还有更好的解决办法。
发布于 2018-09-24 11:00:14
看起来他们不会将其默认添加到CoreOS中,但您可以将其添加到点火配置中。iscsid-initiatorname.service将为您创建名称。
"storage": {
"files": [{
"filesystem": "root",
"path": "/etc/modules-load.d/iscsi_tcp.conf",
"contents": { "source": "data:iscsi_tcp" },
"mode": 420
}]
},
"systemd": {
"units": [{
"enable": true,
"name": "iscsid-initiatorname.service"
}]
}这只适用于新安装或新鲜根磁盘,因此创建文件,执行modprode iscsi_tcp,并执行systemctl start iscsid-initiatorname.service,如果您不想从干净的根开始。
然后,如果使用kubernetes,只需设置卷映射:
kubelet:
extra_args:
feature-gates: MountPropagation=true
extra_binds:
- /usr/sbin/iscsiadm:/usr/sbin/iscsiadm
- /usr/sbin/iscsid:/usr/sbin/iscsid
- /etc/iscsi/:/etc/iscsi/这让OpenEBS在我的裸金属CoreOS集群上工作。
https://stackoverflow.com/questions/37921980
复制相似问题