我正在使用Consul版本1.2.1并尝试实现运行命令的运行状况检查:
# echo ruok | nc localhost 2181
imok
因此,我在此json文件中定义了运行状况检查,但是,我无法在该命令中找到任何显示如何处理管道的文档。关于定义健康检查的Hashi Corp Consul文档为here。
这是我尝试过的方法,但不正确。
{
"service": {
"name": "testapp",
"port": 2181,
"check": [
{
"args": ["echo ruok | nc localhost 2181"],
"interval": "15s",
"timeout": "2s"
}
]
}
}
答案 0 :(得分:1)
不建议使用脚本键,args是正确的方法:
Args(数组)-指定要运行的命令参数以更新检查状态。在Consul 1.0之前,检查使用单个Script字段来定义要运行的命令,并且总是在shell中运行。在Consul 1.0中,添加了Args数组,以便可以在没有外壳的情况下运行检查。 Script字段已弃用,例如,您应将Shell包含在Args中以在shell下运行。 “ args”:[“ sh”,“-c”,“ ...”]。
所以我知道了:
Environment.js
对于带有通过管道传递到另一个命令的检查命令
答案 1 :(得分:0)
您应该使用script
检查,并在check
部分中以不同的格式设置json:
{
"service": {
"name": "testapp",
"port": 2181,
"check": {
"script": "echo ruok | nc localhost 2181",
"interval": "15s",
"timeout": "2s"
}
}
}