从命令行,我可以运行以下命令来获取
etcd
集群的集群运行状况,如下所示:
etcdctl cluster-health
member ac92bd2949b92e96 is healthy: got healthy result from https://172.31.26.170:2379
member bebdb18e18d35331 is healthy: got healthy result from https://172.31.21.117:2379
member c1c4d5cb0d474453 is healthy: got healthy result from https://172.31.18.126:2379
但是,我似乎找不到 API 规范 中记录的相同功能。如何通过 REST API 以编程方式确定集群是否健康?
etcdctl cluster-health
在 V3 中已弃用,您可以使用以下命令代替:
etcdctl --cluster=true endpoint health
编辑(4/17/24):此答案适用于 etcd API v2。 etcd API v3 不再支持这些端点。
从 Github 得到答案,我想我会把它传递出去 -
没有单个 API 调用可以返回集群中所有节点的集群运行状况。为此,您需要:
调用 members API 以获取集群中所有成员的列表。
/health
端点以获取每个端点的运行状况。