0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

安全なステートレスアプリケーションを作るために使えるkubernetesのリソース

Posted at

ステートレスなアプリケーションを作る

アプリケーションで大切なのはただ動くことでなく可用性を上げる(動きやすくする)ことが大切。そのために使えるkubernetesのリソースを紹介していく

Readiness Probe

第一に、コンテナが起動することとトラフィックが受けられるようになることは必ずしも一致しないんだなも。例えばコンテナが二つあって片方が起動しても、もう片方が死んでたらトラフィックは受けられないんだなも。
readinessprobeはコンテナがreadyになるまでの時間やエンドポイントを制御できます。
マニフェスト例

readinessProbe:
    httpGet:
        path:/healthz
        port:8080
    initialDelaySecond: 5
    periodSecond: 5

上の例だとhealthzというヘルスチェック用エンドポイントまで5秒に一回ヘルスチェックが入る。失敗するとserviceリソースの対象から外れ、トラフィックを受けなくなる。

Liveness Probe

ReadinessとProbeが失敗した時の挙動が変わる。
どうなる? > Podが再起動する
これはPodがハングした時に、再起動したら直りそうだなってときに使うといいと思うよ。けど安易に使うべきではないんだなも。無限にPodを再起動する恐れがあります。
マニフェスト例(Readinessとほぼ同じ)

livenessProbe:
    httpGet:
        path:/healthz
        port:8080
    initialDelaySecond: 5
    periodSecond: 5

LivenessとReadinessは一緒に使えるけど、LivenessはReadinessのProbeを待つなんてことはしないから、一緒に使うならReadinessが先になるように実装することが推奨されている。らしい

Startup Probe

Podの初回起動時のみ動く。起動が遅いアプリなどに使用する想定。
マニフェスト例

startupProbe:
    httpGet:
        path:/healthz
        port:liveness-port
    failureThershold: 30
    periodSeconds: 10

上記の例では最大30秒*10回=300秒コンテナの起動を待つ設定になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?