如何使用kubeadm创建kubernetes集群?

时间:2017-01-19 01:27:19

标签: kubernetes kubeadm

我使用kubeadm初始化k8s集群主机,但我感到非常困惑。 kubeadm的版本:

# ./kubeadm version
kubeadm version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"82450d03cb057bab0950214ef122b67c83fb11df", GitTreeState:"clean", BuildDate:"2016-12-14T00:52:01Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}

当我用kubeadm init运行命令时,告诉我必须启动kubelet.service:

# ./kubeadm init
Running pre-flight checks
preflight check errors:
    kubelet service is not active, please run 'systemctl start kubelet.service'

然后当我在systemctl restart kubelet.service之后重试此命令时,告诉我Port 10250 in use

# systemctl restart kubelet.service
# ./kubeadm init
Running pre-flight checks
preflight check errors:
    Port 10250 is in use
    /var/lib/kubelet is not empty

有没有办法在没有端口的情况下运行kubelet或者我可以更改kubelet的端口吗?

5 个答案:

答案 0 :(得分:8)

它提到端口正在使用的原因是因为您已经运行了kubeadm init一次并且它已经改变了很多东西。

首先运行kubeadm reset以撤消第一次运行时的所有更改。

然后运行systemctl restart kubelet

最后,当您运行kubeadm init时,您不应再收到错误。

任何时候kubeadm都做了一些不正确或失败的事情,它需要重置才能再次正常工作。

答案 1 :(得分:1)

检查使用端口10250的过程

sudo netstat -lnp | grep 10250

使用

终止进程
sudo kill Process_PID

然后运行 kubeadm init

答案 2 :(得分:0)

您可以使用--port <port number>覆盖kublet的端口号。

有关详细信息,请参阅:https://kubernetes.io/docs/admin/kubelet/

答案 3 :(得分:0)

我也有同样的问题。

error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR Port-10251]: Port 10251 is in use
    [ERROR Port-10252]: Port 10252 is in use
    [ERROR Port-10250]: Port 10250 is in use
    [ERROR Port-2380]: Port 2380 is in use

然后我注意到还有另一个进程正在运行“ microk8s ” 一旦停止,我就可以启动kubeadm

sudo microk8s.stop

答案 4 :(得分:0)

确保 kubelet 没有安装两次。

将其从 snap 中删除:

snap remove kubelet