!k8sでhostNetwork: trueのときにLivenessProbeがうまくいかない

!! 無指定の時

>>
    Liveness:           http-get http://:11249/healthz delay=30s timeout=5s period=10s #success=1 #failure=3
<<

>>
  58s           58s             1       kubelet, kubernetes     spec.containers{nghttpx-ingress-lb}     Warning         Unhealthy               Liveness probe failed: Get http://実機のIP:11249/healthz: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

<<

ログは実機のIPとなっているが、Livenessのところが空文字になっているのが気になる


!! あえてIPを指定してみる(127.0.0.1)

>>
    Liveness:           http-get http://127.0.0.1:11249/healthz delay=30s timeout=5s period=10s #success=1 #failure=3
<<

>>
  2m            52s             2       kubelet, kubernetes     spec.containers{nghttpx-ingress-lb}     Warning         Unhealthy               Liveness probe failed: Get http://127.0.0.1:11249/healthz: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
<<

!! あえてIPを指定してみる(実機のIP)

>>
    Liveness:           http-get http://実機のIP:11249/healthz delay=30s timeout=5s period=10s #success=1 #failure=3
<<


>>
  10m           1m              5       kubelet, kubernetes     spec.containers{nghttpx-ingress-lb}     Normal          Killing                 Killing container with id docker://nghttpx-ingress-lb:Container failed liveness probe.. Container will be killed and recreated.
<<

Livenessのところに実機のIPが入るようになったが、まだ駄目である

!考察
probeを実行しているのはkubelet
kubeletはsystemdで起動している。

127.0.0.1でも実機のIPでもヘルスチェックはできるはず。
実機からcurlでヘルスチェックポートをたたくと正しくヘルスチェックできている。
5643382
wiki
1509180731