我在设置etcd集群时遇到了一些麻烦,而没有使用在CoreOS上运行的发现URL。
configuration是通过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] )
像这样的错误:
锁匠[12262]:etcd.service is active locksmithd [12262]:初始化etcd客户端时出错:402:Standby Internal Error(
我假设因为etcd工作不正常。
不幸的是,CoreOS网站在实践中没有详细说明CoreOS&etcd的静态设置。
一旦这个工作,我的云configuration看起来像一个代理etcd实例?
当使用静态发现时,etcd 0.4.xselect群集的初始领导者作为没有--peer列表启动的节点。 您需要省略其中一个云configuration的peers:部分。
etcd 2.0.0将允许你以现在正在尝试的方式引导群集,它向所有成员提供一个静态列表,并以这种方式提供群集。 查看静态集群文档: https : //github.com/coreos/etcd/blob/master/Documentation/clustering.md#static
etcd 2.0.0不在CoreOS映像/频道中出货,但是很快就能find它!