mirror of https://github.com/k3s-io/k3s
iscsi: set node.startup to manual
If the default iSCSI node.startup is set to automatic, if there is a node failure, any pods on that node will get rescheduled to another node. If the failed node is later brought back up it will then try to log back in to any iSCSI sessions it had prior to the failure, which may no longer exist or may be now in-use by the other nodes. It appears most platforms keep the open-iscsi default of node.startup-automatic. But in case this system-wide setting has been changed, and just to be explicit, this sets node.startup values for kubernetes controlled volumes to manual. Closes issue #21305pull/6/head
parent
f302487942
commit
69a2deea9c
|
@ -279,6 +279,12 @@ func (util *ISCSIUtil) AttachDisk(b iscsiDiskMounter) (string, error) {
|
|||
lastErr = fmt.Errorf("iscsi: failed to attach disk: Error: %s (%v)", string(out), err)
|
||||
continue
|
||||
}
|
||||
// in case of node failure/restart, explicitly set to manual login so it doesn't hang on boot
|
||||
out, err = b.exec.Run("iscsiadm", "-m", "node", "-p", tp, "-T", b.Iqn, "-o", "update", "node.startup", "-v", "manual")
|
||||
if err != nil {
|
||||
// don't fail if we can't set startup mode, but log warning so there is a clue
|
||||
glog.Warningf("Warning: Failed to set iSCSI login mode to manual. Error: %v", err)
|
||||
}
|
||||
if exist := waitForPathToExist(&devicePath, 10, iscsiTransport); !exist {
|
||||
glog.Errorf("Could not attach disk: Timeout after 10s")
|
||||
// update last error
|
||||
|
|
Loading…
Reference in New Issue