Kubernetes Can';t在CoreOS上的rkt容器内启动iscsiadm

Kubernetes Can';t在CoreOS上的rkt容器内启动iscsiadm,kubernetes,coreos,iscsi,openebs,rkt,Kubernetes,Coreos,Iscsi,Openebs,Rkt,我正在尝试在CoreOS上的rkt中使用iscsi插件启动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 transpor

我正在尝试在CoreOS上的rkt中使用iscsi插件启动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容器中,但这对我没有帮助。

要获得一个有效的解决方案,我必须:

  • 将RKT选项更改为

    RKT_OPTS=--volume=iscsiadm,kind=host,source=/usr/sbin/iscsiadm--mount volume=iscsiadm,target=/usr/sbin/iscsiadm--volume=resolv,kind=host,source=/etc/resolv.conf--mount volume=resolv,target=/etc/iscsi/--mount volume=etcs,target=/etc/iscsi--volume=iscsid,kind=host,source=/usr/sbin/iscsid--装载卷=iscsid,目标=/usr/sbin/iscsid

  • sudo-modprobe-iscsi\u-tcp

由于ascsiadm的原因,请提前初始化tcp模块。但CoreOS加载模块“”,由于某些原因,它在rkt容器中无法工作

  • echo“InitiatorName=iqn.2001-12.com.mycompany:volume.openiscsi initiator”>/etc/iscsi/InitiatorName.iscsi
至少有一些启动器名称


我还填写了CoreOS,可能存在更好的解决方案。

要获得有效的解决方案,我必须:

  • 将RKT选项更改为

    RKT_OPTS=--volume=iscsiadm,kind=host,source=/usr/sbin/iscsiadm--mount volume=iscsiadm,target=/usr/sbin/iscsiadm--volume=resolv,kind=host,source=/etc/resolv.conf--mount volume=resolv,target=/etc/iscsi/--mount volume=etcs,target=/etc/iscsi--volume=iscsid,kind=host,source=/usr/sbin/iscsid--装载卷=iscsid,目标=/usr/sbin/iscsid

  • sudo-modprobe-iscsi\u-tcp

由于ascsiadm的原因,请提前初始化tcp模块。但CoreOS加载模块“”,由于某些原因,它在rkt容器中无法工作

  • echo“InitiatorName=iqn.2001-12.com.mycompany:volume.openiscsi initiator”>/etc/iscsi/InitiatorName.iscsi
至少有一些启动器名称


我还填写了CoreOS,可能存在更好的解决方法。

看起来他们不会将其默认添加到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群集上工作。

看起来他们不会将其默认添加到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/
这让我的纯金属CoreOS集群有了新的进展