我已经看过文档并浏览了源代码,但我似乎不知道如何做到这一点。在实现Kubernetes活动探测时,有没有办法将查询字符串参数与路径一起发送?
我发送的字符串如下所示:
/api/v1?q=...变成URL编码的,并以如下方式访问服务器:
/api/v1%3fq=...因为我在这个特定的API上没有这样的路由,所以我得到了一个404,Kube在分配的超时后收获了pod。
有没有办法定义查询字符串参数来活跃性探测和/或诱使URI编码器允许查询字符串参数?
发布于 2016-07-23 04:52:44
编辑:这个问题现在应该在Kubernetes 1.3中得到修复。感谢Rudi C指出这一点。
Kubernetes v1.2中的活动探测器不支持传递查询参数。
Deis Controller资源库中的This Issue有一个很好的解释。要点是,LivenessProbe.HttpGet.Path被视为真正的URL路径(它需要"?“将被转义为"%3f")。
我已经打开了一个针对Kubernetes的feature request Issue,讨论添加查询参数。
作为一种变通办法,您可以使用包含查询参数的exec livenessProbe (只要您的容器包含wget或curl之类的内容):
livenessProbe:
exec:
command:
- wget
- /api/v1?q=...发布于 2016-07-23 05:02:33
您运行的是哪个版本?转义是一个错误,本应在1.3中修复:
https://github.com/kubernetes/kubernetes/pull/25064
这并不完美,但它不需要在YAML中添加额外的API字段。
发布于 2018-03-13 01:39:37
如果您有某种令牌授权(通过get参数),并且您在根目录(service-name/)上进行了健康检查,则应该省略斜杠,例如:
readinessProbe:
httpGet:
path: ?token=${TOKEN}
port: 80
scheme: HTTP我不得不在PR changes中寻找指定它的方法
https://stackoverflow.com/questions/38532286
复制相似问题