1

我正在编写一个脚本来记录etcd我创建的集群。我想检索集群 ID 和成员 ID 并将其写入报告。

我可以使用etcdctl member list.

$ etcdctl member list
7a37a8973f10a944, started, etcd22, http://192.168.144.22:2380, http://192.168.144.22:2379
bda5a1801ac0115d, started, etcd21, http://192.168.144.21:2380, http://192.168.144.21:2379
c0f27f3c63dd09c6, started, etcd23, http://192.168.144.23:2380, http://192.168.144.23:2379

但是,如何从脚本中获取集群 ID?我看到它打印的唯一地方是第一次初始化的stdout时候。etcd

etcdserver:集群 bd535900b5473128 中的起始成员c0f27f3c63dd09c6
4

1 回答 1

2

来自服务器的 RPC 响应具有包含集群 ID 的标头。通过更改输出格式,可以显示标题信息。

例如:

$ etcdctl member list -w fields
"ClusterID" : 14841639068965178418
"MemberID" : 10276657743932975437
"Revision" : 0
"RaftTerm" : 3
"ID" : 10276657743932975437
"Name" : "default"
"PeerURL" : "http://localhost:2380"
"ClientURL" : "http://localhost:2379"

或者

$ etcdctl member list -w json
{"header":{"cluster_id":14841639068965178418,"member_id":10276657743932975437,"raft_term":3},"members":[{"ID":10276657743932975437,"name":"default","peerURLs":["http://localhost:2380"],"clientURLs":["http://localhost:2379"]}]}
于 2019-06-26T15:41:54.067 回答