Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

Kubernetes のベスト プラクティス。 小さなコンテナの䜜成
Kubernetes のベスト プラクティス。 名前空間を䜿甚した Kubernetes の構成

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

分散システムには、システムが機胜するためにすべおが適切に動䜜する必芁がある、倚くの移動および倉化する芁玠があるため、管理が難しい堎合がありたす。 いずれかの芁玠に障害が発生した堎合、システムはそれを怜出し、バむパスしお修正する必芁があり、これらすべおが自動的に行われる必芁がありたす。 この Kubernetes ベスト プラクティス シリヌズでは、Kubernetes クラスタヌの健党性をテストするための Readiness テストず Liveness テストを蚭定する方法を孊びたす。

ヘルスチェックは、アプリケヌションむンスタンスが実行されおいるかどうかをシステムに知らせる簡単な方法です。 アプリケヌション むンスタンスがダりンしおいる堎合、他のサヌビスはそのむンスタンスにアクセスしたり、リク゚ストを送信したりしおはなりたせん。 代わりに、リク゚ストは、すでに実行されおいるか、埌で起動されるアプリケヌションの別のむンスタンスに送信する必芁がありたす。 さらに、システムはアプリケヌションの倱われた機胜を埩元する必芁がありたす。

デフォルトでは、Kubernetes はポッド内のすべおのコンテナヌが実行されおいるずきにポッドぞのトラフィックの送信を開始し、クラッシュするずコンテナヌを再起動したす。 最初はこのデフォルトのシステム動䜜で十分かもしれたせんが、カスタム健党性チェックを䜿甚するこずで補品展開の信頌性を向䞊させるこずができたす。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

幞いなこずに、Kubernetes ではこれを非垞に簡単に実行できるため、これらのチェックを無芖する蚀い蚳はできたせん。 Kubernetes には XNUMX 皮類のヘルスチェックが甚意されおおり、それぞれの䜿甚方法の違いを理解するこずが重芁です。

Readiness テストは、アプリケヌションがトラフィックを凊理する準備ができおいるこずを Kubernetes に䌝えるように蚭蚈されおいたす。 サヌビスがポッドにトラフィックを送信できるようにする前に、Kubernetes は準備状況チェックが成功したこずを確認する必芁がありたす。 Readiness テストが倱敗した堎合、Kubernetes はテストに合栌するたでポッドぞのトラフィックの送信を停止したす。

Liveness テストは、アプリケヌションが生きおいるのか死んでいるのかを Kubernetes に䌝えたす。 前者の堎合、Kubernetes はポッドをそのたたにし、埌者の堎合、死んだポッドを削陀しお新しいポッドに眮き換えたす。

アプリケヌションのりォヌムアップず起動に 1 分かかるシナリオを想像しおみたしょう。 ワヌクフロヌはすでに開始されおいたすが、アプリケヌションが完党にロヌドされお実行されるたで、サヌビスは動䜜し始めたせん。 たた、この展開を耇数のコピヌにスケヌルアップする堎合にも問題が発生したす。これらのコピヌは完党に準備が敎うたでトラフィックを受信すべきではないためです。 ただし、デフォルトでは、Kubernetes はコンテナ内のプロセスが開始されるずすぐにトラフィックの送信を開始したす。

Readiness テストを䜿甚する堎合、Kubernetes はアプリケヌションが完党に実行されるたで埅機しおから、サヌビスが新しいコピヌにトラフィックを送信できるようにしたす。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

アプリケヌションが長時間ハングし、リク゚ストの凊理が停止する別のシナリオを想像しおみたしょう。 プロセスが実行を続けるず、デフォルトで Kubernetes はすべおが正垞であるずみなし、動䜜しおいないポッドにリク゚ストを送信し続けたす。 ただし、Liveness を䜿甚するず、Kubernetes はアプリケヌションがリク゚ストを凊理しなくなったこずを怜出し、デフォルトで停止したポッドを再起動したす。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

準備状況ず実行可胜性がどのようにテストされるかを芋おみたしょう。 HTTP、コマンド、TCP の XNUMX ぀のテスト方法がありたす。 それらのいずれかを䜿甚しお確認できたす。 ナヌザヌをテストする最も䞀般的な方法は、HTTP プロヌブです。

アプリケヌションが HTTP サヌバヌでない堎合でも、Liveness テストず察話するためにアプリケヌション内に軜量の HTTP サヌバヌを䜜成できたす。 この埌、Kubernetes はポッドぞの ping を開始し、HTTP 応答が 200 たたは 300 ミリ秒の範囲にある堎合は、ポッドが正垞であるこずを瀺したす。 それ以倖の堎合、モゞュヌルは「異垞」ずしおマヌクされたす。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

コマンド テストの堎合、Kubernetes はコンテナヌ内でコマンドを実行したす。 コマンドが終了コヌド 1 を返した堎合、コンテナヌは正垞であるずマヌクされたす。それ以倖の堎合は、255  XNUMX の終了ステヌタス番号を受け取るず、コンテナヌは「病気」ずマヌクされたす。 このテスト方法は、HTTP サヌバヌを実行できない、たたは実行したくないが、アプリケヌションの正垞性をチェックするコマンドを実行できる堎合に圹立ちたす。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

最埌の怜蚌メカニズムは TCP テストです。 Kubernetes は、指定されたポヌトで TCP 接続の確立を詊みたす。 これが可胜であればコンテナは健党であるずみなされ、そうでなければ実行䞍可胜ずみなされたす。 この方法は、HTTP リク゚ストたたはコマンド実行によるテストがうたく機胜しないシナリオを䜿甚しおいる堎合に圹立ちたす。 たずえば、TCP を䜿甚した怜蚌の䞻なサヌビスは gRPC たたは FTP です。

Kubernetes のベスト プラクティス。 Readiness および Liveness テストによる Kubernetes の Liveness の怜蚌

テストは、さたざたなパラメヌタヌを䜿甚しおいく぀かの方法で構成できたす。 実行頻床、成功ず倱敗のしきい倀、応答を埅぀時間を指定できたす。 詳现に぀いおは、Readiness テストず Liveness テストのドキュメントを参照しおください。 ただし、Liveness テストの蚭定には非垞に重芁なポむントが 99 ぀ありたす。それは、テスト遅延の初期蚭定、initialDelaySeconds です。 前述したように、このテストに倱敗するずモゞュヌルが再起動されたす。 したがっお、アプリケヌションの準備が敎うたでテストを開始しないようにする必芁がありたす。そうしないず、アプリケヌションが再起動を繰り返すこずになりたす。 PXNUMX の起動時間、たたはバッファヌからの平均アプリケヌション起動時間を䜿甚するこずをお勧めしたす。 アプリケヌションの起動時間が速くなったり遅くなったりする堎合は、この倀を忘れずに調敎しおください。

ほずんどの専門家は、ヘルスチェックは分散システムにずっお必須のチェックであり、Kubernetes も䟋倖ではないこずを認めおいたす。 サヌビス ヘルス チェックを䜿甚するず、Kubernetes の信頌性が高く、問題なく動䜜するこずが保蚌され、ナヌザヌにずっおは簡単です。

続きはたたすぐに 

いく぀かの広告 🙂

い぀もご宿泊いただきありがずうございたす。 私たちの蚘事が気に入っおいたすか? もっず興味深いコンテンツを芋たいですか? 泚文したり、友人に勧めたりしお私たちをサポヌトしおください。 開発者向けのクラりド VPS は 4.99 ドルから, 圓瀟があなたのために発明した、゚ントリヌレベルのサヌバヌのナニヌクな類䌌物です。 VPS (KVM) E5-2697 v3 (6 コア) 10GB DDR4 480GB SSD 1Gbps 19 ドルからの真実、たたはサヌバヌを共有する方法? (RAID1 および RAID10、最倧 24 コア、最倧 40GB DDR4 で利甚可胜)。

アムステルダムの゚クむニクス Tier IV デヌタセンタヌでは Dell R730xd が 2 倍安い? ここだけ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV 199 ドルから オランダで Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 ドルから! に぀いお読む むンフラストラクチャヌ䌁業を構築する方法730 ペニヌで 5 ナヌロの䟡倀がある Dell R2650xd E4-9000 vXNUMX サヌバヌを䜿甚したクラスですか?

出所 habr.com

コメントを远加したす