在不使用在 CoreOS 上运行的发现 URL 的情况下设置 etcd 集群时遇到了一些问题。
配置是通过 cloud-init 进行的。集群中的 3 台服务器列在下面的对等项下。每台服务器都有不同的 IP,并且静态设置了 addr 和 peer-addr。
例如,第一个服务器包含:
#cloud-config
coreos:
etcd:
addr: 192.168.0.50:4001
peer-addr: 192.168.0.50:7001
peers: 192.168.0.50:7001,192.168.0.51:7001,192.168.0.52:7001
我在 journalctl 中看到的内容是:
警告 | 同步集群失败([http://192.168.0.50:7001 http://127.0.0.1:7001])
还有如下错误:
locksmithd[12262]: etcd.service 处于活动状态 locksmithd[12262]: 初始化 etcd 客户端时出错: 402: 待机内部错误 (
我认为这是因为 etcd 不能正常工作。
不幸的是,CoreOS 网站并没有详细介绍 CoreOS 和 etcd 的实际静态设置。
一旦它正常工作,对于代理的 etcd 实例,我的云配置会是什么样子?
答案1
使用静态发现时,etcd 0.4.x 会选择集群的初始领导者作为未使用列表启动的节点--peer
。您需要省略peers:
其中一个云配置的部分。
etcd 2.0.0 将允许您以现在尝试的方式引导集群,即向所有成员提供静态列表并以此方式启动集群。查看静态集群文档:https://github.com/coreos/etcd/blob/master/Documentation/clustering.md#static
etcd 2.0.0 尚未在 CoreOS 映像/频道中发布,但很快就会发布!