?orchestrator-client?
是一个包装 API 调用的脚本,使用起来更方便。
它可以自动确定orchestrator的Leader角色
,并在这种情况下将所有请求转发给Leader。
有了orchestrator-client
:
orchestrator的
二进制文件;仅在运行该服务的主机上安装即可orchestrator
;仅在服务主机上即可。ORCHESTRATOR_API
环境变量。
export ORCHESTRATOR_API=https://orchestrator.myservice.com:3000/api
orchestrator
端点,并orchestrator-client
自动选择领导者(不需要代理),例如export ORCHESTRATOR_API="https://orchestrator.host1:3000/api https://orchestrator.host2:3000/api https://orchestrator.host3:3000/api"
/etc/profile.d/orchestrator-client.sh?
中设置环境变量。如果该文件存在,它将被内联orchestrator-client
。显示当前已知的集群(复制拓扑):
orchestrator-client -c clusters
发现、忘记一个实例:
orchestrator-client -c discover -i 127.0.0.1:22987
orchestrator-client -c forget -i 127.0.0.1:22987
打印拓扑实例的 ASCII 树。通过以下方式传递集群名称-i
(参见clusters
上面的命令):
orchestrator-client -c topology -i 127.0.0.1:22987
示例输出:
127.0.0.1:22987 + 127.0.0.1:22989 + 127.0.0.1:22988 + 127.0.0.1:22990
在拓扑中移动副本:
orchestrator-client -c relocate -i 127.0.0.1:22988 -d 127.0.0.1:22987
结果拓扑:
127.0.0.1:22987 + 127.0.0.1:22989 + 127.0.0.1:22988 + 127.0.0.1:22990
命令行接口为 API 调用提供了一个很好的包装器,然后其输出从 JSON 格式转换为文本格式。
例如,命令:
orchestrator-client -c discover -i 127.0.0.1:22987
可以转化为(为了方便起见,此处进行了简化):
curl "$ORCHESTRATOR_API/discover/127.0.0.1/22987" | jq '.Details | .Key'
orchestrator-client -c help
:列出所有可用的命令orchestrator-client -c which-api
:API 端点orchestrator-client
将用于调用命令的输出。当通过 提供多个端点时,这非常有用$ORCHESTRATOR_API
。orchestrator-client -c api -path clusters
:调用通用 HTTP API 调用(在本例中clusters
)并返回原始 JSON 响应。