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