この記事は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/ |
<<: 製造、小売、医療の事例から:エッジコンピューティングと人工知能が収益向上にどのように役立つか
>>: エッジコンピューティングとは何ですか?なぜそれがモノのインターネットの発展にとって避けられない選択なのでしょうか?
locvps は現在、米国およびオーストラリアの VPS の特別プロモーションを提供しています: 米...
6月9日、2020 Alibaba Cloud Summitにおいて、Alibaba Cloud I...
1. はじめにランディングページの時間要素は、百度検索がウェブサイトの掲載、表示、ランキング結果を判...
現時点では、全国の人々の関心は新型コロナウイルス感染症の流行に集中しています。これについてはすでに多...
2011年12月21日朝、ハッカーが中国最大の開発者コミュニティであるCSDNのユーザーデータベース...
2018 年 10 月 25 日、上海 - 2018 Microsoft Tech Summit が...
本日執筆した記事は、プロジェクト マネージャーや SEM スーパーバイザーの観点から、入札の「遊び」...
【注:この記事はブルース・クレイの倫理規定の中国語訳です。ただし、原文は法律文書に似ており、専門用語...
以前、minivps Host Catを紹介しました。正式に登録された会社です。今回もプロモーション...
インターネット上の膨大な広告情報は、長い間人々を圧倒してきました。まずトラフィックが必要で、次に収益...
インターネットの発展に伴い、ウェブサイトアプリケーションの規模は拡大し続けています。従来の垂直アプリ...
現在、最も優れたマーケティング方法はソフトテキストマーケティングかもしれません。なぜでしょうか? 多...
「CubeCloud」の春節プロモーション:先行販売のVPSを除き、その他はすべて25%割引、永久に...
IPLC としてスタートした hmbcloud (ハーフ ムーン ベイ) は、ロサンゼルスの DC5...
サイト クラスターの主な目的は、検索エンジンを通じて大量のトラフィックを獲得したり、メイン サイトへ...