我正在尝试在我的CoreOS节点中启动etcd2。
我有这个在我的云configuration:
coreos: etcd2: discovery: https://discovery.etcd.io/new?size=1 advertise-client-urls: http://127.0.0.1:2379,http://127.0.0.1:4001 initial-advertise-peer-urls: http://127.0.0.1:2380 listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-peer-urls: http://127.0.0.1:2380
安装后,当我启动系统时,我得到错误(根据日志):
etcdmain:顶级值之后的无效字符“p”
etcd2无法启动。
那是什么意思? 我遵循https://coreos.com/os/docs/latest/cloud-config.html和https://coreos.com/os/docs/latest/cluster-discovery.html上的指南。
编辑
节点1
coreos: etcd2: name: coreos1 discovery: https://discovery.etcd.io/2d585793b364cf8985ca7a983d6c52e3 advertise-client-urls: http://127.0.0.1:2379,http://127.0.0.1:4001 initial-advertise-peer-urls: http://127.0.0.1:2380 listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-peer-urls: http://127.0.0.1:2380
节点2
coreos: etcd2: name: coreos2 discovery: https://discovery.etcd.io/2d585793b364cf8985ca7a983d6c52e3 advertise-client-urls: http://127.0.0.1:2379,http://127.0.0.1:4001 initial-advertise-peer-urls: http://127.0.0.1:2380 listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-peer-urls: http://127.0.0.1:2380
coreos1> journalctl -u etcd2:
Sep 21 20:10:31 coreos1 etcd2[671]: 2015/09/21 20:10:31 discovery: found self e276d5b4c276a19d in the cluster Sep 21 20:10:31 coreos1 etcd2[671]: 2015/09/21 20:10:31 discovery: found 1 peer(s), waiting for 1 more Sep 21 20:11:31 coreos1 etcd2[671]: 2015/09/21 20:11:31 discovery: error #0: client: etcd member https://discovery.etcd.io returns server error [Gateway Timeout] Sep 21 20:11:31 coreos1 etcd2[671]: 2015/09/21 20:11:31 discovery: waiting for other nodes: error connecting to https://discovery.etcd.io, retrying in 8m32s
coreos2> journalctl -u etcd2:
Sep 21 20:11:43 coreos2 systemd[1]: Starting etcd2... Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: etcd Version: 2.1.2 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: Git SHA: ff8d1ec Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: Go Version: go1.4.2 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: Go OS/Arch: linux/amd64 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: setting maximum number of CPUs to 1, total number of available CPUs is 1 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: listening for peers on http://127.0.0.1:2380 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: listening for client requests on http://0.0.0.0:2379 Sep 21 20:11:43 coreos2 etcd2[1515]: 2015/09/21 20:11:43 etcdmain: listening for client requests on http://0.0.0.0:4001 Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: stopping listening for client requests on http://0.0.0.0:4001 Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: stopping listening for client requests on http://0.0.0.0:2379 Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: stopping listening for peers on http://127.0.0.1:2380 Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: member "core2" has previously registered with discovery service token (https://discovery.etcd.io/2d585793b364cf8985ca7a983d6c52e3). Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: But etcd could not find vaild cluster configuration in the given data dir (/var/lib/etcd2). Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: Please check the given data dir path if the previous bootstrap succeeded Sep 21 20:11:45 coreos2 etcd2[1515]: 2015/09/21 20:11:45 etcdmain: or use a new discovery token if the previous bootstrap failed. Sep 21 20:11:45 coreos2 systemd[1]: etcd2.service: Main process exited, code=exited, status=1/FAILURE Sep 21 20:11:45 coreos2 systemd[1]: etcd2.service: Unit entered failed state. Sep 21 20:11:45 coreos2 systemd[1]: etcd2.service: Failed with result 'exit-code'.
您的发现url不正确 – urlhttps://discovery.etcd.io/new?size=1用于获取您可以在configuration中使用的新发现url。 手动做一次,例如curl:
curl --silent -H "Accept: text/plain" https://discovery.etcd.io/new?size=1
这将返回一个这样的URL:
https://discovery.etcd.io/a93e30ebf9375f2385fef54c83b2840d
这是一个像应该是你的发现url的URL。 每当您构build新群集时,请始终使用全新的发现url。
如果这是整个cloud-config.yml文件,那就错了。
该文件的第一行需要是:
#cloud-config
即
#cloud-config coreos: etcd2: discovery: https://discovery.etcd.io/new?size=1 advertise-client-urls: http://127.0.0.1:2379,http://127.0.0.1:4001 initial-advertise-peer-urls: http://127.0.0.1:2380 listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-peer-urls: http://127.0.0.1:2380
另外,从网站复制cloud-config的时候要小心。 我在结果输出文件中隐藏了一些奇怪的字符,导致parsing器错误,导致失败!