【发布时间】:2018-12-16 23:54:17
【问题描述】:
我正在运行一个无法更改任何规范的 Web 服务。我想在 Kubernetes 上使用带有 HTTP POST 的活性探针。我找不到任何可用的东西。我对busybox 和netcat 的所有努力都失败了。
有解决办法吗?是否可以从任何 Linux dist 构建自定义活性探针?
【问题讨论】:
标签: docker kubernetes
我正在运行一个无法更改任何规范的 Web 服务。我想在 Kubernetes 上使用带有 HTTP POST 的活性探针。我找不到任何可用的东西。我对busybox 和netcat 的所有努力都失败了。
有解决办法吗?是否可以从任何 Linux dist 构建自定义活性探针?
【问题讨论】:
标签: docker kubernetes
Kubernetes Probes 仅支持 HTTP GET、TCP 和命令。
如果您必须通过 HTTP POST 检查某些内容,您可以使用命令方法,只需 curl -XPOST ..
一个例子是:
...
containers:
- name: k8-byexamples-spring-rest
image: gcr.io/matthewdavis-byexamples/k8-byexamples-spring-rest:1d4c1401c9485ef61322d9f2bb33157951eb351f
ports:
- containerPort: 8080
name: http
livenessProbe:
exec:
command:
- curl
- -X POST
- http://localhost/test123
initialDelaySeconds: 5
periodSeconds: 5
...
更多解释见:https://matthewdavis.io/kubernetes-health-checks-demystified/。
希望有帮助!
【讨论】:
curl --fail -X POST ...。否则,curl 命令仍会以零错误代码退出以表示不成功错误代码,并且 Kubernetes 不会认为 liveness 或 readiness 探测失败。