Kubernetes liveness probes with query string parameters

萝らか妹 提交于 2019-12-19 07:49:48

问题


I've looked over the documentation and browsed the source, but I can't seem to figure out how to do this. Is there any way to send query string parameters along with the path when implementing a Kubernetes liveness probe?

The string I am sending, which looks something like this:

/api/v1?q=...

becomes URL-encoded and hits the server as:

/api/v1%3fq=...

As I have no such route on this particular API, I get a 404, and Kube reaps the pods after the allotted timeout.

Is there any way to define query string parameters to liveness probes and/or trick the URI encoder to allow query string parameters?


回答1:


EDIT: This should now be fixed in Kubernetes 1.3. Thanks to Rudi C for pointing that out.

Liveness probes in Kubernetes v1.2 don't support passing query parameters.

This Issue in the Deis Controller repo has a good explanation. The gist is that the LivenessProbe.HttpGet.Path is treated as a true URL path (which needs the "?" to be escaped as "%3f").

I've opened a feature request Issue against Kubernetes to discuss adding query parameter(s).

As a workaround, you could use an exec livenessProbe that included the query parameters (as long as your container includes something like wget or curl):

livenessProbe:
  exec:
    command:
    - wget
    - /api/v1?q=...



回答2:


Which version are you running? The escaping is a bug that was supposed to be fixed in 1.3:

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

Not perfect, but it doesn't require additional API fields in the YAML.




回答3:


If you have some kind of token authorization (via get parameter) and you have health check on root (service-name/), you should omit the slash, for example:

readinessProbe:
  httpGet:
    path: ?token=${TOKEN}
    port: 80
    scheme: HTTP

I had to look through PR changes to find the way to specify it



来源:https://stackoverflow.com/questions/38532286/kubernetes-liveness-probes-with-query-string-parameters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!