|
|
1
9
对于所有在谷歌上偶然发现这一点的人: 错误是关于对等成员ID,它试图加入集群中已存在的另一个成员(可能是旧实例)同名的集群(具有相同的对等名称,但另一个ID,这就是问题所在)。 您应该删除对等体并重新添加它 like shown in this helpful post :
使用“etcdctl成员列表”查找当前成员的ID,并找到试图以错误ID加入集群的成员,然后从“成员”中删除该对等体,并使用“etcdctl成员删除”尝试重新加入。 希望有帮助。 |
|
|
2
3
两年后,我遇到了同样的问题。Dmitry的回答很好,但忽略了OP在设置etcd集群时可能首先犯的错误。 在任何时候运行带有“-cluster state new”的etcd实例都会在数据目录中生成集群ID。如果您尝试然后/稍后加入现有集群,它将使用旧生成的集群ID(发生不匹配错误时)。是的,从技术上讲,OP有一个“旧集群”,但更可能的是,100%常见的是,当有人试图维护他们的第一个集群时,他们没有注意到程序必须更改。我发现etcd通常无法提供良好的使用模型。
以下是设置细微差别的示例:(叹气…感谢您的etcd…)
好,第一个节点正在运行。集群数据位于~/data目录中。在将来的运行中,您只需要(注意,不需要集群状态):
接下来,添加第二个节点的预期集群名称和对等URL:
请注意这里恼人的额外参数--初始集群必须100%识别集群中的所有节点……这在您加入集群后并不重要,因为集群数据将以任何方式复制……此外,还需要“初始集群存在”。 同样,在第二个节点第一次运行/加入后,您可以在没有任何集群参数的情况下运行它:
当然,您可以在所有集群设置的情况下继续运行etcd,但数据目录中的内容可能会被忽略。请记住,如果您加入第三个节点,新节点成员的知识将复制到其余节点,并且这些“初始”群集设置在将来群集更改时可能完全错误/误导。因此,运行加入的节点时不使用初始群集设置,除非您实际加入了一个。 此外,最后一点要说明的是,您应该/必须在集群中至少运行3个节点,否则,RAFT领导人选举过程将破坏一切。对于2个节点,当1个节点发生故障或断开连接时,节点将不会选择自身并在选举循环中旋转。客户端无法与处于选举模式的etcd服务进行对话…非常可用!如果1发生故障,您至少需要3个节点来处理。 |
|
|
3
2
在我的例子中,我得到了错误 rafthttp:请求群集ID不匹配(获得1b3a88599e79f82b,需要B339D80A381A57) 由于一个节点上的配置不正确 我的两个节点进入配置 环境ETCD_INITIAL_CLUSTER=“ETCD-01= http://172.16.50.101:2380,etcd-02=http://172.16.50.102:2380,etcd-03=http://172.16.50.103:2380 " 一个节点得到 环境ETCD_INITIAL_CLUSTER=“ETCD-01= http://172.16.50.101:2380 " 为了解决这个问题,我在所有节点上停止了etcd,编辑了错误的配置, 删除所有节点中的/var/lib/etcd/member文件夹,在所有节点上重新启动etcd,瞧! 附笔 /var/lib/etcd-在我的例子中,是etcd保存数据的文件夹 |
|
|
4
1
My--data dir=/var/etcd/data,删除并重新创建它,这对我很有用。似乎我之前创建的etcd集群中的某些东西留在了这个目录中,这可能会影响etcd设置。 |
|
|
5
1
我也遇到了同样的问题,我们的领先etcd服务器出现故障,在更换新服务器后,出现了一个错误
它正在寻找旧的集群Id,并生成一些配置错误的随机本地集群。 按照以下步骤解决问题。
我已经花了很多时间调试这个问题,现在我的集群在所有成员中运行正常。希望这些信息有帮助。 |
|
|
6
1
注意 或者,如果启用TLS,则替换 http 具有 https
|
|
|
Ashwin Anbalagan · Kubernetes集群设置配置 2 年前 |
|
|
Zuzana · 聚合和分解组/簇以实现组内相关系数的最大值 2 年前 |
|
|
Jaco · 将环境变量用作copula中Spark配置的一部分 2 年前 |
|
|
JShao · 到Redis集群的Jedis TLS连接 3 年前 |
|
|
VictorOF · 如何将外部库运行到不同的节点?[MPI] 8 年前 |