この記事はWeChatのパブリックアカウント「Cloud Native Knowledge Universe」から転載したもので、著者はI am rocです。この記事を転載する場合は、Cloud Native Knowledge Universe の公開アカウントにお問い合わせください。 概要Pod が破棄されると、コンテナ内のプロセスは停止されます。通常、停止プロセス中に、接続の中断を避けるために既存のリクエストが処理されるのを待ったり、関連する依存関係をクリーンアップするように通知したりするなど、何らかの後処理ロジックを実行して、正常な終了の目的を達成する必要があります。この記事では、Kubernetes シナリオでコンテナの正常な終了を実装するためのベスト プラクティスを紹介します。 コンテナ終了プロセスまず、Kubernetes 環境でのコンテナの終了プロセスを理解しましょう。
ビジネス コードは SIGTERM シグナルを処理します正常な終了を実現するには、ビジネス コードで SIGTERM シグナルを必ず処理してください (SIGTERM 処理コードの例を参照)。 シェルがSIGTERMシグナルの受信を妨げないようにしてくださいスクリプト (CMD ["/start.sh"] など) がコンテナの起動エントリとして使用される場合、ビジネス プロセスはシェルのサブプロセスになります。 Pod が停止すると、シェルがサブプロセスにシグナルを自動的に渡さないため、ビジネス プロセスは SIGTERM シグナルを受信しない可能性があります。より詳細な説明については、「コンテナーが SIGTERM シグナルを受信しないのはなぜですか?」を参照してください。 解決したら? SHELL でのシグナルの受け渡しを参照してください。 プレストップフックの適切な使用ビジネス コードが SIGTERM シグナルを処理しない場合、またはエレガントな終了ロジックを追加するために使用されるサードパーティのライブラリまたはシステムを制御できない場合は、Pod の preStop を構成して、その中にエレガントな終了ロジックを実装することもできます。例えば:
Kubernetes APIドキュメントを参照してください 極端なケースでは、ポッドが削除された後も、短期間で新しい接続が転送されることがあります。これは、kubelet と kube-proxy が同時にポッドの削除を監視するためです。 kubelet は、kube-proxy がルールを同期する前にコンテナを停止した可能性があります。この場合、いくつかの新しい接続が削除される Pod に転送される可能性があります。通常、アプリケーションが SIGTERM を受信すると、新しい接続を受け入れなくなり、既存の接続の処理のみを継続します。したがって、Pod が削除された瞬間に一部のリクエストが失敗する可能性があります。 この場合、preStop を使用してしばらくスリープし、kube-proxy がルールの同期を完了するまで待機してから、コンテナ内のプロセスの停止を開始することもできます。
猶予時間を調整する必要な正常終了時間が長い場合 (preStop + ビジネス プロセスの停止が 30 秒を超える可能性がある)、SIGKILL によって早期に強制終了されることを回避するために、実際の状況に応じて terminationGracePeriodSeconds をカスタマイズできます。例えば: 参考文献 SIGTERM を処理するコード例: https://imroc.cc/k8s/ref/code-example-of-handle-sigterm/ コンテナが SIGTERM シグナルを受信できないのはなぜですか: https://imroc.cc/k8s/faq/why-cannot-receive-sigterm/ SHELL でのシグナルの伝播: https://imroc.cc/k8s/trick/propagating-signals-in-shell/ |
<<: 製造、小売、医療の事例から:エッジコンピューティングと人工知能が収益向上にどのように役立つか
>>: エッジコンピューティングとは何ですか?なぜそれがモノのインターネットの発展にとって避けられない選択なのでしょうか?
近年、インターネット分野の資本投資に関するニュースは、BATの合併や買収、展開を除けば、垂直コミュニ...
キーワードを基に、ユーザーの行動や言語に合わせて網羅的なキーワードを最適化する必要があります。キーワ...
著者が運営するDazhou Home Decoration Networkは、3年以上運営されていま...
今日の近代商業社会では、プロフェッショナリズムがますます重視されていますが、驚くべきことに、インター...
この検索エンジンとその関連ウェブサイトは、有名なウェブサイトから大量の文学作品を海賊版として入手しま...
納税日、今日は米国の納税日です。誰もがこの日までに納税申告書を提出しなければなりません。Hostga...
サーバー仮想化プロジェクトによる節約だけで、ファイル管理、ストレージ仮想化、クラウド コンピューティ...
私の国の観光市場はどれくらい大きいのでしょうか?すでに1兆を超えています。旅行業界全体では、Ctri...
おそらく私たちは、SEO に関する話題について、聞きすぎ、見すぎ、考えすぎているのかもしれません。し...
ウェブサイトを構築する過程で学び、実践したウェブサイトのトラフィックを増やすためのいくつかの方法をま...
inceptionhosting.comは2011年に設立されたようです。イギリスに登録された会社で...
今日、クラウドは、必要なときに新しいリソースを簡単にプロビジョニングできるなど、多くの利点があるため...
昨日は子供の日でした。子供の頃の思い出は私たちにとって最も大切な思い出だと思います。これは、多くの個...
最近、友人から私のマーケティング本「デートはこうすればもっと楽しくなる」がいつ出版されるのかと聞かれ...
昨夜、多くのウェブマスターがため息をついたかもしれません。「夜は長くて眠れない」。百度は昨夜、もう一...