无法启动的iscsiadm上CoreOS RKT容器内

问题描述 投票:0回答:2

我想里面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容器内,但它并不能帮助我。

kubernetes coreos iscsi openebs rkt
2个回答
1
投票

为了得到一个有效的解决方案,我不得不:

  • 更改RKT选项 RKT_OPTS = - 体积=的iscsiadm,种类=主机,源= / usr / sbin目录/的iscsiadm --mount体积=的iscsiadm,目标= / usr / sbin目录/的iscsiadm --volume = RESOLV,种类=主机,源=的/ etc /的resolv.conf --mount体积= RESOLV,目标=的/ etc / resolv.conf的--volume = ETCS,种类=主机,源=的/ etc /的iSCSI / --mount体积= ETCS,目标=的/ etc / iSCSI的 - 体积= iscsid,种类=主机,源= / usr / sbin目录/ iscsid --mount体积= iscsid,目标= / usr / sbin目录/ iscsid
  • 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,也许更好的解决方法存在。


0
投票

它看起来并不像他们将其添加到默认,但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群集上运行。

© www.soinside.com 2019 - 2024. All rights reserved.