簡體   English   中英

Kubernetes 無法連接到服務器:dial tcp xxxx:6443: i/o timeout

[英]Kubernetes Unable to connect to the server: dial tcp x.x.x.x:6443: i/o timeout

我正在使用測試 kubenetes 集群(Kubeadm 1 主節點和 2 個節點設置),我的公共 IP 不時更改,當我的公共 IP 更改時,我無法連接到集群,並且出現以下錯誤

 Kubernetes Unable to connect to the server: dial tcp x.x.x.x:6443: i/o timeout

我也有私有 IP 10.10.10.10,它一直是一致的。

我使用以下命令創建了 kubernetes 集群

 kubeadm init --control-plane-endpoint 10.10.10.10

但它仍然失敗,因為證書被簽名到公共 IP,下面是錯誤

 The connection to the server x.x.x.x:6443 was refused - did you specify the right host or port?

有人可以幫助設置 kubeadm,並且應該允許所有 IP 為 0.0.0.0 之類的東西,而且我對安全觀點很好,因為它是測試設置。 或任何參數修復。

由於@Vidya已經通過使用靜態 IP 地址解決了這個問題,我決定提供一個社區 Wiki 答案,只是為了讓其他社區成員更好地了解。

首先,不建議頻繁更改主/服務器IP地址。
正如我們在 GitHub kubernetes/88648上的討論中發現的那樣- kubeadm沒有提供一種簡單的方法來處理這個問題。

但是,當 Kubernetes 主節點上的 IP 地址發生變化時,有一些解決方法可以幫助我們。 基於更改主 IP 地址的討論,我准備了一個重新生成證書和重新初始化主節點的腳本。

此腳本可能會有所幫助,但我建議一次運行一個命令(這樣會更安全)。
此外,您可能需要根據需要自定義一些步驟:
注意:在下面的示例中,我使用 Docker 作為容器運行時。

root@kmaster:~# cat reinit_master.sh 
#!/bin/bash
set -e

echo "Stopping kubelet and docker"
systemctl stop kubelet docker

echo "Making backup kubernetes data"
mv /etc/kubernetes /etc/kubernetes-backup
mv /var/lib/kubelet /var/lib/kubelet-backup

echo "Restoring certificates"
mkdir /etc/kubernetes
cp -r /etc/kubernetes-backup/pki /etc/kubernetes/
rm /etc/kubernetes/pki/{apiserver.*,etcd/peer.*}

echo "Starting docker"
systemctl start docker 


echo "Reinitializing master node"
kubeadm init --ignore-preflight-errors=DirAvailable--var-lib-etcd

echo "Updating kubeconfig file"
cp /etc/kubernetes/admin.conf ~/.kube/config

然后您需要將工作節點重新加入集群。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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