2016-07-22 3 views
2

내가 문서를 통해 보면서 소스를 탐색 한 매개 변수, 그러나 나는이 작업을 수행하는 방법을 알아낼 수 없습니다. Kubernetes 활성 프로브를 구현할 때 경로와 함께 쿼리 문자열 매개 변수를 보낼 수있는 방법이 있습니까?는 Kubernetes 유효화 프로브는

이 같은 보인다 내가 보내고 문자열 :

/api/v1?q=... 

는 URL 인코딩하게하고 같은 서버 안타 :

/api/v1%3fq=... 

나는이 특정 API에 이런 경로가 없기 때문에 , 나는 404를 얻는다. 그리고 Kube는 할당되었던 타임 아웃 후 포드를 때린다.

쿼리 문자열 매개 변수를 허용하는 프로브를 유효화 및/또는 URI 인코더를 속여 쿼리 문자열 매개 변수를 정의 할 수있는 방법이 있습니까?

답변

2

편집 :이 현재는 Kubernetes 1.3에서 해결되어야한다. 루디 C가 그것을 지적 해 주신 덕분입니다. 는 Kubernetes 1.2에서

활동성 프로브는 쿼리 매개 변수를 전달하는 지원하지 않습니다. Deis 컨트롤러의 repo에서

This Issue

은 좋은 설명이있다. 요점은 LivenessProbe.HttpGet.Path가 "% 3f"로 이스케이프되도록 "?"가 필요한 실제 URL 경로로 처리된다는 것입니다.

나는 쿼리 매개 변수 (들)을 추가 논의는 Kubernetes에 대한 feature request Issue을 열었습니다. 실행중인 버전

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

이것은 우리의 백업 전략이 될 것입니다 - 우리는 컬/wget을 포함하지 않는 포드 아래로 아주 잘랐습니다. 그러나 의무는 여기에 있습니다 ... 응답 해 주셔서 감사합니다! – Josh

+1

루디가 옳다고 생각합니다. 이것은 이제 1.3.0 이상에서 직접 작동합니다. –

1

:

해결 방법으로

, 당신은 (한 컨테이너 wget을하거나 컬 같은 것을 포함로) 쿼리 매개 변수를 포함 된 간부 livenessProbe를 사용할 수 있을까? 이스케이프는 1.3에서 수정 될했는데 버그가 :

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

완벽하지,하지만 YAML의 추가 API 필드를 필요로하지 않습니다.