我想里面RKT的iSCSI插件上CoreOS使用instruction here开始kubernetes。问题是iSCSI守护程序无法启动,所以我得到一个错误,无法安装卷到POD。
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 ...
我试图安装整个的/ dev /的RKT容器内,但它并不能帮助我。
为了得到一个有效的解决方案,我不得不:
sudo modprobe iscsi_tcp
初始化TCP模块提前,因为it needed为ascsiadm。但CoreOS加载模块“as-needed”和某些原因不RKT容器内工作。
echo "InitiatorName=iqn.2001-12.com.mycompany:volume.openiscsi-initiator" > /etc/iscsi/initiatorname.iscsi
至少某些启动程序名称is needed。
我在CoreOS也充满the bug,也许更好的解决方法存在。
它看起来并不像他们将其添加到默认,但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 baremetal CoreOS群集上运行。