[英]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.