[英]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 進程,但無濟於事。 任何建議和見解都值得贊賞。
您可以執行以下操作:
嘗試使用以下命令找出哪個進程正在占用端口10250
root@master admin]# ss -lntp | grep 10250
LISTEN 0 128 :::10250 :::* users:(("kubelet",pid=23373,fd=20))
它將為您提供該進程的PID和該進程的名稱。 如果保留端口的是不需要的進程,則可以隨時終止該進程,並且該端口可供kubelet使用。
再次終止該進程后,運行上面的命令,它應該不返回任何值。
為了安全起見,運行kubeadm reset,然后運行kubeadm init,它應該會通過。
您是否嘗試過使用netstat查看已綁定到該端口的其他正在運行的進程?
sudo netstat -tulpn | grep 10250
我放棄kubeadm並使用microk8s。
對我來說,后來我發現我的集群中有 2 個額外的 core-dns-xxxxx 容器“終止”。
刪除它們后有力地為我解決了問題:
kubectl delete core-dns-xxxx --force
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.