如果不使用在 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 实例会是什么样子?
使用静态发现时,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 映像/频道中发布,但请尽快查找!