rediness / livenessはkubeletが担当
コンテナの生き死にをハンドリングするLiveness Probe、Readiness Probeですが、これはMaster(kube-apiserver)が行うわけではないです。
公式ページにも
kubeletは、Liveness Probeを使用して、コンテナをいつ再起動するかを認識します。 例えば、アプリケーション自体は起動しているが、処理を継続することができないデッドロック状態を検知することができます。 このような状態のコンテナを再起動することで、バグがある場合でもアプリケーションの可用性を高めることができます。
とありますが、実際にAPIサーバを落としてみて起動停止の確認をしてみました。
apiserverを落とした状態で・・
APIサーバーを落とすのでkubectlは通らなくなります。
が、その下のレイヤー(dockerなど)でのコンテナの状態は見れるので確認すると
# docker ps | grep live aff9ce125835 e7d168d7db45 "/bin/sh -c 'touch..." 5 seconds ago Up 4 seconds k8s_liveness_liveness-test_default_60bb753d-c833-48f5-9969-169f9768df15_83 b4055450d093 k8s.gcr.io/pause:3.6 "/pause" 4 hours ago Up 4 hours k8s_POD_liveness-test_default_60bb753d-c833-48f5-9969-169f9768df15_0
定期的にlivenessを検知が聞いて再起動していることが確認できました。