diff --git a/scripts/cluster/create_multinode_cluster.go b/scripts/cluster/create_multinode_cluster.go index ea0a4cbc3..e3175adb2 100644 --- a/scripts/cluster/create_multinode_cluster.go +++ b/scripts/cluster/create_multinode_cluster.go @@ -79,10 +79,11 @@ func CreateMasterKubeletService() error { if !utils.CheckErrorWithMsg(err, "Failed to create kubelet service!\n") { return err } + nodeIP, _ := utils.GetNodeIP() bashCmd := `sudo sh -c 'cat < /etc/default/kubelet -KUBELET_EXTRA_ARGS="--v=%d --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock" +KUBELET_EXTRA_ARGS="--v=%d --runtime-request-timeout=15m --container-runtime-endpoint=unix:///run/containerd/containerd.sock --node-ip %s" EOF'` - _, err = utils.ExecShellCmd(bashCmd, configs.System.LogVerbosity) + _, err = utils.ExecShellCmd(bashCmd, configs.System.LogVerbosity, nodeIP) if !utils.CheckErrorWithMsg(err, "Failed to create kubelet service!\n") { return err } @@ -98,7 +99,7 @@ EOF'` func DeployKubernetes() error { utils.WaitPrintf("Deploying Kubernetes(version %s)", configs.Kube.K8sVersion) - masterNodeIp, iperr := utils.ExecShellCmd(`ip route | awk '{print $(NF)}' | awk '/^10\..*/'`) + masterNodeIp, iperr := utils.GetNodeIP() if iperr != nil { return iperr } @@ -191,7 +192,7 @@ func WaitForWorkerNodes() error { var userInput string var allNodesJoined = false _, err := fmt.Scanln(&userInput) - if err != nil { + if !utils.CheckErrorWithMsg(err, "Failed to wait for node!\n") { utils.FatalPrintf("Unexpected Error!\n") return err } diff --git a/scripts/cluster/setup_worker_kubelet.go b/scripts/cluster/setup_worker_kubelet.go index 005ed2833..9ef0e8e45 100644 --- a/scripts/cluster/setup_worker_kubelet.go +++ b/scripts/cluster/setup_worker_kubelet.go @@ -50,10 +50,11 @@ func CreateWorkerKubeletService(criSock string) error { if !utils.CheckErrorWithMsg(err, "Failed to create kubelet service!\n") { return err } + nodeIP, _ := utils.GetNodeIP() bashCmd := `sudo sh -c 'cat < /etc/default/kubelet -KUBELET_EXTRA_ARGS="--v=%d --runtime-request-timeout=15m --container-runtime-endpoint=unix://%s" +KUBELET_EXTRA_ARGS="--v=%d --runtime-request-timeout=15m --container-runtime-endpoint=unix://%s --node-ip %s" EOF'` - _, err = utils.ExecShellCmd(bashCmd, configs.System.LogVerbosity, criSock) + _, err = utils.ExecShellCmd(bashCmd, configs.System.LogVerbosity, criSock, nodeIP) if !utils.CheckErrorWithMsg(err, "Failed to create kubelet service!\n") { return err } diff --git a/scripts/setup.go b/scripts/setup.go index 366f58fb2..3d3fe9b5c 100644 --- a/scripts/setup.go +++ b/scripts/setup.go @@ -237,7 +237,7 @@ func main() { } if err != nil { - utils.FatalPrintf("Faild subcommand: %s!\n", subCmd) + utils.FatalPrintf("Failed subcommand: %s!\n", subCmd) utils.CleanEnvironment() os.Exit(1) } diff --git a/scripts/utils/utils.go b/scripts/utils/utils.go index 8f7013184..7e84b0a21 100644 --- a/scripts/utils/utils.go +++ b/scripts/utils/utils.go @@ -171,3 +171,20 @@ func InstallYQ() { _, err := ExecShellCmd(`sudo wget %s -O /usr/bin/yq && sudo chmod +x /usr/bin/yq`, yqUrl) CheckErrorWithMsg(err, "Failed to add yq!\n") } + +func GetNodeIP() (string, error) { + nodeIP, err := ExecShellCmd(`ip route | awk '{print $(NF)}' | awk '/^10\..*/'`) + if err == nil { + return nodeIP, nil + } + + WarnPrintf("Failed to find IP address in 10.0.0.0/8 subnet! Falling back to one of the host IP addresses\n") + nodeIP, err = ExecShellCmd(`hostname -I | awk '{print $1}'`) + + if err != nil { + ErrorPrintf("Failed to find host IP address!\n") + return "", err + } + + return nodeIP, nil +}