我使用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的端口吗?
答案 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