優雅な閉鎖と機械kubernetes pods
1576 ワード
エレガントな起動
よくあるシーンでは、サービスが開始されたばかりで、ロードするものがたくさんあるかもしれません(例えば、データベースの中のものを読む必要があります)が、この時間では、kubernetesがまだ初期化されていないpodにリクエストをかけたくありません.
kubernetesはプローブというものを提供し、podが準備されているかどうかを検出することができ、準備されている場合にのみ要求をかけてきます.準備されていない場合、これらのpodはserviceのload balancerから一時的に除去されます.
プローブはcommandまたはHTTPのリクエストであってもよく、ここではHTTPリクエストの形式を使用している.プログラムが通常/heartbeatにアクセスできることを保証する必要があります.私は一般的にこのインタフェースにsuccessの戻りを与えます.
以上はreadiness probe(準備プローブ)の一般的な構成です. httpGetはhttp getリクエストをプローブとして使用し、getリクエスト が配置する. initialDelaySecondsカルシウムkubeletプローブを最初に実行するまで30秒 待つ timeoutSecondsプローブタイムアウト時間、1 sを超えるとプローブが 失敗したと考えられる periodSecondsプローブの実行頻度、デフォルトは1 s successThreshold:プローブに失敗した後、少なくとも連続プローブに何回成功してから成功と認定されますか.デフォルトは1です.livenessの場合は1でなければなりません.最小値は1です. failureThreshold:プローブが成功した後、少なくとも連続プローブが何回失敗してから失敗と認定されます.デフォルトは3です.最小値は1です.
エレガントクローズ
エレガントクローズとはpodが閉じる準備をしている場合、データの保存など、いくつかの処理が必要になる可能性があります.この間、サービスは新しいリクエストを受け入れません.kubernetesは優雅に閉じる構成を提供しています
podにクローズ命令を発行すると、k 8 sはアプリケーションにSIGTERM信号を送信し、プログラムはSIGTERM信号をキャプチャして対応する処理を行うだけでよい.k 8 sは60秒待って閉じるように構成されています.
よくあるシーンでは、サービスが開始されたばかりで、ロードするものがたくさんあるかもしれません(例えば、データベースの中のものを読む必要があります)が、この時間では、kubernetesがまだ初期化されていないpodにリクエストをかけたくありません.
kubernetesはプローブというものを提供し、podが準備されているかどうかを検出することができ、準備されている場合にのみ要求をかけてきます.準備されていない場合、これらのpodはserviceのload balancerから一時的に除去されます.
プローブはcommandまたはHTTPのリクエストであってもよく、ここではHTTPリクエストの形式を使用している.プログラムが通常/heartbeatにアクセスできることを保証する必要があります.私は一般的にこのインタフェースにsuccessの戻りを与えます.
readinessProbe:
httpGet:
path: /heartbeat
port: 8001
scheme: HTTP
initialDelaySeconds: 30
timeoutSeconds: 1
periodSeconds: 30
以上はreadiness probe(準備プローブ)の一般的な構成です.
エレガントクローズ
エレガントクローズとはpodが閉じる準備をしている場合、データの保存など、いくつかの処理が必要になる可能性があります.この間、サービスは新しいリクエストを受け入れません.kubernetesは優雅に閉じる構成を提供しています
terminationGracePeriodSeconds: 60
podにクローズ命令を発行すると、k 8 sはアプリケーションにSIGTERM信号を送信し、プログラムはSIGTERM信号をキャプチャして対応する処理を行うだけでよい.k 8 sは60秒待って閉じるように構成されています.