サービス キューにサブスクライブするワーカー ポッドがあります。ワーカーの状態を監視する liveness プローブを定義する必要があります。ワーカー ポッドは HTTP または TCP ポートを公開しません。そのため、コマンドを使用してワーカーの健康状態を確認します。このような。
livenessProbe:
exec:
command:
- cat
- log/healthy-2020-07-16-03.log
5 秒ごとに、ワーカー ポッドはヘルス情報をログ ファイルに出力します。ログファイル名の形式は、healthy-YYYY-MM-DD-HH.log です。そして、各ログ情報は次のようになります。
{"message":"Thu Jul 16 2020 03:23:30 GMT+0000 (Coordinated Universal Time) health","level":"notice","Env":"local","Service":"myservice","timestamp":"2020-07-16T03:23:30.008Z"}
そのため、ログのタイムスタンプとメッセージが正常かどうかを確認する必要があります。
私の質問は:
- 私のアプローチは、k8s 正常性プローブのベスト プラクティスに従っていますか?
- k8s はより強力なコマンドをサポートしていますか? 例: python スクリプトまたは jq。JSON を解析し、タイムスタンプとメッセージを検証する必要がありますか?
- ワーカー Pod の場合、readiness プローブを定義する必要はありません。k8s サービスまたはエンドポイントとバインドしないためですよね?