[英]Kops rolling-update fails with “Cluster did not pass validation” for master node
由於某種原因,在通過kops(版本1.13.0)從kubernetes 1.11.9升級到1.12.9之后,我的主節點無法再連接到群集。 在清單中,我升級kubernetesVersion
> 1.12.9 -從1.11.9。 這是我唯一要做的更改。 但是,當我運行kops rolling-update cluster --yes
是時,出現以下錯誤:
Cluster did not pass validation, will try again in "30s" until duration "5m0s" expires: machine "i-01234567" has not yet joined cluster.
Cluster did not validate within 5m0s
之后,如果我運行kubectl get nodes
我將不再在群集中看到該主節點。
通過切入斷開連接的主節點實例進行一些調試,我通過運行sudo cat /var/log/kube-apiserver.log
在api服務器日志中發現了以下錯誤:
controller.go:135] Unable to perform initial IP allocation check: unable to refresh the service IP block: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:4001: connect: connection refused
我懷疑問題可能與etcd有關,因為當我運行sudo netstat -nap | grep LISTEN | grep etcd
sudo netstat -nap | grep LISTEN | grep etcd
sudo netstat -nap | grep LISTEN | grep etcd
沒有輸出。
任何人都知道如何將主節點重新加入群集或對嘗試的事情有建議嗎?
我進行了一些研究,但對您的想法卻很少:
如果etcd grep沒有輸出,則意味着您的etcd服務器已關閉。 檢查“已退出” etcd容器的日志| grep Exited | grep etcd
| grep Exited | grep etcd
| grep Exited | grep etcd
然后logs <etcd-container-id>
嘗試我發現的以下指令 :
1-我使用etcdctl從de etcd集群中刪除了舊的master。 您將需要在etcd-server容器上進行連接。
2-在新的主節點上,我停止了kubelet和protokube服務。
3-空Etcd數據目錄。 (數據和數據事件)
4-編輯/etc/kubernetes/manifests/etcd.manifests和etcd-events.manifest,將ETCD_INITIAL_CLUSTER_STATE從新更改為現有。
5-從新的主服務器獲取名稱和PeerURLS,並使用etcdctl在群集上添加新的主服務器。 (etcdctl成員添加“名稱”“ PeerULR”)您將需要在etcd服務器容器上進行連接。
6-在新的主服務器上啟動kubelet和protokube服務。
請讓我知道是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.