如何在基于 Kubernetes 的 Eclipse Microprofile 中配置 livenessProbe
How to configure a livenessProbe in Kubernetes based Eclipse Microprofile
我是运行一个基于Eclipse Microprofile的休息服务。我的服务提供健康检查。这种健康检查的结果(提供了大量信息)看起来像这样:
http://localhost:9990/health
HTTP=OK
{
"status":"UP",
"checks":[
{"name":"imixs-workflow",
"status":"UP",
"data":
{
"engine.version":"5.1.11-SNAPSHOT",
"model.groups":30,
"model.versions":20
}
}
]
}
如果名为 'imixs-workflow' 的检查显示 'status' 'UP'.
,则服务正常
我已经尝试使用这样的 livenessprobe 来配置它:
livenessProbe:
exec:
command: ["sh", "-c", "curl -s http://localhost:9990/health| grep -q imixs-workflow"]
initialDelaySeconds: 60
但这没有用。
我应该如何配置这样一个 livenessprobe 获取 http 结果中特定 json 字段的状态?
您的 liveness 探测命令应该 return status 不同于 0 以指示不健康的容器状况。请参阅 Configure Liveness, Readiness and Startup Probes。
如果可能的话,为了更好的可维护性和可读性,我还建议使用名为 jq 的工具 - 命令行 JSON 处理器。
有了它,您的探测器应该看起来像这样:
livenessProbe:
exec:
command: ["sh", "-c", "curl -s http://localhost:9990/health | jq -e '.checks[] | select(.name == "imixs-workflow") | .status == "UP"']
initialDelaySeconds: 60
此处 -e
如果最后一个输出值为 false,则标志将退出状态设置为 1。
我是运行一个基于Eclipse Microprofile的休息服务。我的服务提供健康检查。这种健康检查的结果(提供了大量信息)看起来像这样:
http://localhost:9990/health
HTTP=OK
{
"status":"UP",
"checks":[
{"name":"imixs-workflow",
"status":"UP",
"data":
{
"engine.version":"5.1.11-SNAPSHOT",
"model.groups":30,
"model.versions":20
}
}
]
}
如果名为 'imixs-workflow' 的检查显示 'status' 'UP'.
,则服务正常我已经尝试使用这样的 livenessprobe 来配置它:
livenessProbe:
exec:
command: ["sh", "-c", "curl -s http://localhost:9990/health| grep -q imixs-workflow"]
initialDelaySeconds: 60
但这没有用。
我应该如何配置这样一个 livenessprobe 获取 http 结果中特定 json 字段的状态?
您的 liveness 探测命令应该 return status 不同于 0 以指示不健康的容器状况。请参阅 Configure Liveness, Readiness and Startup Probes。
如果可能的话,为了更好的可维护性和可读性,我还建议使用名为 jq 的工具 - 命令行 JSON 处理器。
有了它,您的探测器应该看起来像这样:
livenessProbe:
exec:
command: ["sh", "-c", "curl -s http://localhost:9990/health | jq -e '.checks[] | select(.name == "imixs-workflow") | .status == "UP"']
initialDelaySeconds: 60
此处 -e
如果最后一个输出值为 false,则标志将退出状态设置为 1。