簡體   English   中英

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 進程,但無濟於事。 任何建議和見解都值得贊賞。

您可以執行以下操作:

嘗試使用以下命令找出哪個進程正在占用端口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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM