列出etcd成员时看到错误的客户端URL

时间:2019-09-16 11:08:53

标签: kubernetes etcd

我有一个堆叠的主K8s集群(etcd也是本地/内部),具有三个主节点和9个工作节点。 我的集群版本当前为1.12.3,通过etcd命令时,我尝试列出etcd成员,执行

ETCDCTL_API=3 etcdctl member list

,发现master2和master3的客户端Url错误。

下面是图片,

根据我的理解,对等端和客户端的ip应该相同,但是在127.0.0.1master2的情况下,我看到IP为master3

当我检查端点状态时,出现以下错误,

  

无法获取端点状态:2379(超出了上下文截止日期)

在我成功获取master1的状态时,

任何人都可以帮我解决这个问题。

我尝试过的事情:

1)编辑清单文件,etcd pods重新启动,但列出成员后仍然没有任何改变。

2)我还成功地在etcd集群中删除并添加了master3,并且此方法有效(IP得到更正并获得master3的状态),但是当我对master2进行相同操作时,得到的错误与

  

“验证peerURL {{ID:xyz,PeerUrls:xyz,clienturl:xyz},{&ID:xyz ......}}:成员数不相等时出错”

1 个答案:

答案 0 :(得分:1)

编辑etcd清单文件并更正IP对我有用。 以前它不起作用,因为清单文件夹中存在一个etcd.yml.bkp文件(可能是我在升级前自行备份了etcd清单的备份文件),并发现etcd pod指向该yml文件,并删除了该yml。清单文件夹中的文件解决了该问题。

还发现kube-apiserver.yml文件中提到的IP不正确,为更正它,尝试了以下两种可行的方法:

  • 手动编辑文件并更正IP
  • 或者,我们可以为执行kubeadm init的kube-api服务器生成一个新的清单文件 相位控制平面apiserver --kubernetes-version 1.14.5