Как получить идентификатор кластера etcd из скрипта? - PullRequest
1 голос
/ 29 мая 2019

Я пишу сценарий для документирования кластеров etcd, которые я создаю.Я хочу получить идентификатор кластера и идентификаторы участников и записать их в отчет.

Я могу легко получить идентификаторы участников, используя 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

Однако как мне это сделать?получить идентификатор кластера из скрипта?Единственное место, где я вижу его, напечатано в stdout, когда etcd впервые инициализируется.

etcdserver: starting member c0f27f3c63dd09c6 in cluster <b>bd535900b5473128</b>

1 Ответ

1 голос
/ 26 июня 2019

Ответы RPC от сервера имеют заголовки, которые содержат идентификатор кластера.Изменяя формат вывода, вы можете отобразить информацию заголовка.

Например:

$ 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"]}]}
...