kubeadm init kubelet 抱怨默认绑定地址已被使用
kubeadm init kubelet complains default bind address already in use
kubeadm 版本 1.12.2
$ sudo kubeadm init --config kubeadm_new.config --ignore-preflight-errors=all
/var/log/syslog 显示:
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438374 5101 server.go:1013] Started kubelet
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438406 5101 server.go:133] Starting to listen on 0.0.0.0:10250
Nov 15 08:44:13 khteh-T580 kubelet[5101]: E1115 08:44:13.438446 5101 kubelet.go:1287] Image garbage collection failed once. Stats initialization may not have completed yet: failed to get imageFs info: unable to find data in memory cache
Nov 15 08:44:13 khteh-T580 kubelet[5101]: E1115 08:44:13.438492 5101 server.go:753] Starting health server failed: listen tcp 127.0.0.1:10248: bind: address already in use
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438968 5101 server.go:318] Adding debug handlers to kubelet server.
Nov 15 08:44:13 khteh-T580 kubelet[5101]: F1115 08:44:13.439455 5101 server.go:145] listen tcp 0.0.0.0:10250: bind: address already in use
我已经尝试 sudo systemctl stop kubelet
并手动终止 kubelet 进程但无济于事。任何建议和见解都将受到赞赏。
您是否尝试过使用 netstat 来查看 运行 已经绑定到该端口的其他进程?
sudo netstat -tulpn | grep 10250
您可以执行以下操作:
尝试以下命令找出哪个进程占用了端口 10250
root@master admin]# ss -lntp | grep 10250
LISTEN 0 128 :::10250 :::* users:(("kubelet",pid=23373,fd=20))
它将为您提供该进程的 PID 和该进程的名称。如果占用该端口的是不需要的进程,您可以随时终止该进程,然后该端口可供 kubelet 使用。
再次杀死进程后运行以上命令,应该return没有价值。
为了安全起见 运行 kubeadm reset 然后 运行 kubeadm init 它应该会通过。
我放弃了 kubeadm 并使用 microk8s。
kubeadm 版本 1.12.2
$ sudo kubeadm init --config kubeadm_new.config --ignore-preflight-errors=all
/var/log/syslog 显示:
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438374 5101 server.go:1013] Started kubelet
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438406 5101 server.go:133] Starting to listen on 0.0.0.0:10250
Nov 15 08:44:13 khteh-T580 kubelet[5101]: E1115 08:44:13.438446 5101 kubelet.go:1287] Image garbage collection failed once. Stats initialization may not have completed yet: failed to get imageFs info: unable to find data in memory cache
Nov 15 08:44:13 khteh-T580 kubelet[5101]: E1115 08:44:13.438492 5101 server.go:753] Starting health server failed: listen tcp 127.0.0.1:10248: bind: address already in use
Nov 15 08:44:13 khteh-T580 kubelet[5101]: I1115 08:44:13.438968 5101 server.go:318] Adding debug handlers to kubelet server.
Nov 15 08:44:13 khteh-T580 kubelet[5101]: F1115 08:44:13.439455 5101 server.go:145] listen tcp 0.0.0.0:10250: bind: address already in use
我已经尝试 sudo systemctl stop kubelet
并手动终止 kubelet 进程但无济于事。任何建议和见解都将受到赞赏。
您是否尝试过使用 netstat 来查看 运行 已经绑定到该端口的其他进程?
sudo netstat -tulpn | grep 10250
您可以执行以下操作:
尝试以下命令找出哪个进程占用了端口 10250
root@master admin]# ss -lntp | grep 10250
LISTEN 0 128 :::10250 :::* users:(("kubelet",pid=23373,fd=20))
它将为您提供该进程的 PID 和该进程的名称。如果占用该端口的是不需要的进程,您可以随时终止该进程,然后该端口可供 kubelet 使用。
再次杀死进程后运行以上命令,应该return没有价值。
为了安全起见 运行 kubeadm reset 然后 运行 kubeadm init 它应该会通过。
我放弃了 kubeadm 并使用 microk8s。