首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有查询字符串参数的Kubernetes活动探测器

带有查询字符串参数的Kubernetes活动探测器
EN

Stack Overflow用户
提问于 2016-07-23 01:32:03
回答 3查看 2.9K关注 0票数 5

我已经看过文档并浏览了源代码,但我似乎不知道如何做到这一点。在实现Kubernetes活动探测时,有没有办法将查询字符串参数与路径一起发送?

我发送的字符串如下所示:

代码语言:javascript
复制
/api/v1?q=...

变成URL编码的,并以如下方式访问服务器:

代码语言:javascript
复制
/api/v1%3fq=...

因为我在这个特定的API上没有这样的路由,所以我得到了一个404,Kube在分配的超时后收获了pod。

有没有办法定义查询字符串参数来活跃性探测和/或诱使URI编码器允许查询字符串参数?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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之类的内容):

代码语言:javascript
复制
livenessProbe:
  exec:
    command:
    - wget
    - /api/v1?q=...
票数 4
EN

Stack Overflow用户

发布于 2016-07-23 05:02:33

您运行的是哪个版本?转义是一个错误,本应在1.3中修复:

https://github.com/kubernetes/kubernetes/pull/25064

这并不完美,但它不需要在YAML中添加额外的API字段。

票数 3
EN

Stack Overflow用户

发布于 2018-03-13 01:39:37

如果您有某种令牌授权(通过get参数),并且您在根目录(service-name/)上进行了健康检查,则应该省略斜杠,例如:

代码语言:javascript
复制
readinessProbe:
  httpGet:
    path: ?token=${TOKEN}
    port: 80
    scheme: HTTP

我不得不在PR changes中寻找指定它的方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38532286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档