尝试列出机器时出现 etcd 错误

etcd error when trying to list machines

我正在试验 etcd,并且已经能够在集群中获得它 运行 并执行大部分预期功能。但是,我正在尝试执行一些基本的管理和监控请求,但出现异常错误。

我执行以下命令(在 COREOS documentation 中):

curl -L http://127.0.0.1:7001/v2/admin/machines

我得到以下回复:

404 page not found

注意:我确认 etcd 正在工作(因为我可以看到其他命令工作得很好)。

我的配置如下:

$ etcd --version

etcd Version: 2.3.0
Git SHA: 5e6eb7e
Go Version: go1.5.3
Go OS/Arch: darwin/amd64

您可能想要使用 etcd2。 fleet 还可以让您轻松与之交互。

这是一个适用于 coreos 的 cloud-init 示例:

etcd2:
    discovery: "https://discovery.etcd.io/<your_token>"
    advertise-client-urls: http://$$private_ipv4:2379,http://$$private_ipv4:4001
    initial-advertise-peer-urls: http://$$private_ipv4:2380
    listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
    listen-peer-urls: http://$$private_ipv4:2380,http://$$private_ipv4:7001
  fleet:
    etcd-servers: http://$$private_ipv4:2379
  units:
    - name: etcd2.service
      command: start
    - name: fleet.service
      command: start

那么你就可以轻松运行:

johnt@docker ~ $ sudo fleetctl list-machines
MACHINE     IP      METADATA
cfa23XXX... 172.16.32.XXX   -
johnt@docker ~ $

您还可以通过 运行 类似的方式检查 etcd 文件夹中的内容:

johnt@docker ~ $ etcdctl ls /
/coreos.com
johnt@docker ~ $

您使用的 api 已弃用。

使用

curl -L http://127.0.0.1:7001/members

curl -L http://127.0.0.1:4001/v2/members