Kubernetesプローブの仕組み:落とし穴と正しい設定法
How Kubernetes Probes Work

Kubernetesのプローブ(startup、readiness、liveness)の動作を、ブラウザ上で動くシミュレーターを使って詳しく解説。プローブがないと何が起きるか、各プローブの役割、設定値の選び方、そして誤設定によるクラッシュループなどの実例を示す。さらに、Podの終了猶予期間と組み合わせることで、デプロイ中のリクエスト損失を防ぐ方法も紹介。著者はk3sとの検証でKubernetesのバグを発見したことも明かしている。
プローブは、コンテナの起動中や停止中にトラフィックを送らないようにするための重要な仕組みであり、適切に設定することで、デプロイ中のリクエスト損失を防ぐことができます。
HNでの議論
25- stackskipton
SREです。上流の依存関係が失敗したときにreadinessやlivenessチェックを失敗させないという意見には強く反対します。そうすべき理由はいくつかあり、起動時間が極端に長くない限り、再起動して何が悪いのでしょうか?
もしかしたらDNSが変わったのに、TTLを適切に尊重していないために悪いローカルキャッシュに固執しているかもしれません(Javaを見ていますよ)。プロセスをリセットすれば、そのキャッシュはクリアされます。
もしかしたらTCP接続がおかしな状態でスタックしているかもしれません。プロセスをリセットすれば、通常はそれが解決します。
もしかしたら誰かが間違った環境変数を渡して、データベースに接続できないかもしれません。ロールアウトを進めないことで、障害は発生しません。
だから、重要な上流の依存関係を含めて仕事をする準備ができていないのなら、システムに「準備できています」と嘘をつくのはやめましょう。
- sidcool
これは新しいことを述べているわけではありませんが、Kubernetesのドキュメントよりもはるかにうまく説明しています。
- stroebs
社内ドキュメント用にこのようなアニメーションを作る方法を知りたいです。