優雅な閉鎖と機械kubernetes pods

1576 ワード

エレガントな起動
よくあるシーンでは、サービスが開始されたばかりで、ロードするものがたくさんあるかもしれません(例えば、データベースの中のものを読む必要があります)が、この時間では、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(準備プローブ)の一般的な構成です.
  • httpGetはhttp getリクエストをプローブとして使用し、getリクエスト
  • が配置する.
  • initialDelaySecondsカルシウムkubeletプローブを最初に実行するまで30秒
  • 待つ
  • timeoutSecondsプローブタイムアウト時間、1 sを超えるとプローブが
  • 失敗したと考えられる
  • periodSecondsプローブの実行頻度、デフォルトは1 s
  • successThreshold:プローブに失敗した後、少なくとも連続プローブに何回成功してから成功と認定されますか.デフォルトは1です.livenessの場合は1でなければなりません.最小値は1です.
  • failureThreshold:プローブが成功した後、少なくとも連続プローブが何回失敗してから失敗と認定されます.デフォルトは3です.最小値は1です.

  • エレガントクローズ
    エレガントクローズとはpodが閉じる準備をしている場合、データの保存など、いくつかの処理が必要になる可能性があります.この間、サービスは新しいリクエストを受け入れません.kubernetesは優雅に閉じる構成を提供しています
    terminationGracePeriodSeconds: 60 

    podにクローズ命令を発行すると、k 8 sはアプリケーションにSIGTERM信号を送信し、プログラムはSIGTERM信号をキャプチャして対応する処理を行うだけでよい.k 8 sは60秒待って閉じるように構成されています.