我有一个堆叠的主K8s集群(etcd
也是本地/内部),具有三个主节点和9个工作节点。
我的集群版本当前为1.12.3
,通过etcd
命令时,我尝试列出etcd
成员,执行
ETCDCTL_API=3 etcdctl member list
,发现master2和master3的客户端Url错误。
下面是图片,
根据我的理解,对等端和客户端的ip应该相同,但是在127.0.0.1
和master2
的情况下,我看到IP为master3
。
当我检查端点状态时,出现以下错误,
无法获取端点状态:2379(超出了上下文截止日期)
在我成功获取master1
的状态时,
任何人都可以帮我解决这个问题。
我尝试过的事情:
1)编辑清单文件,etcd pods重新启动,但列出成员后仍然没有任何改变。
2)我还成功地在etcd集群中删除并添加了master3,并且此方法有效(IP得到更正并获得master3的状态),但是当我对master2进行相同操作时,得到的错误与
“验证peerURL {{ID:xyz,PeerUrls:xyz,clienturl:xyz},{&ID:xyz ......}}:成员数不相等时出错”
答案 0 :(得分:1)
编辑etcd清单文件并更正IP对我有用。 以前它不起作用,因为清单文件夹中存在一个etcd.yml.bkp文件(可能是我在升级前自行备份了etcd清单的备份文件),并发现etcd pod指向该yml文件,并删除了该yml。清单文件夹中的文件解决了该问题。
还发现kube-apiserver.yml文件中提到的IP不正确,为更正它,尝试了以下两种可行的方法: