5

ドキュメントに目を通し、ソースを参照しましたが、これを行う方法がわかりません。Kubernetes liveness プローブを実装するときに、パスとともにクエリ文字列パラメーターを送信する方法はありますか?

送信する文字列は次のようになります。

/api/v1?q=...

URL エンコードされ、次のようにサーバーにヒットします。

/api/v1%3fq=...

この特定の API にはそのようなルートがないため、404 が返され、割り当てられたタイムアウト後に Kube がポッドを取得します。

liveness プローブにクエリ文字列パラメーターを定義したり、URI エンコーダーをだましてクエリ文字列パラメーターを許可したりする方法はありますか?

4

3 に答える 3

4

編集: これは Kubernetes 1.3 で修正されるはずです。それを指摘してくれたRudi Cに感謝します。

Kubernetes v1.2 の liveness プローブは、クエリ パラメーターの受け渡しをサポートしていません。

Deis Controller リポジトリのこの問題には、適切な説明があります。要点は、LivenessProbe.HttpGet.Path が真の URL パスとして扱われることです (「?」を「%3f」としてエスケープする必要があります)。

クエリ パラメーターの追加について話し合うために、Kubernetes に対する機能要求の問題をオープンしました。

回避策として、クエリ パラメーターを含む exec livenessProbe を使用できます (コンテナーに wget や curl などのものが含まれている場合)。

livenessProbe:
  exec:
    command:
    - wget
    - /api/v1?q=...
于 2016-07-22T20:52:43.593 に答える