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のLifecycle学習メモ

Last updated at Posted at 2023-01-17

自己紹介

初めまして。私は都内でwebエンジニアをしています。

今の会社にインターンとして経て、入社しました。

業務では、Nuxtjs, Golang, Kubernetesを用いて運用保守開発や

最近はPandasを用いてデータ分析など日々苦戦している若輩者です。

背景

Kubernetesのライフサイクルが個人的に忘れがちなので、簡単にまとめました。

対象としている人

Kubernetesを学習途中の人、またこれからKubernetesを学習しようとしている人

Lifecycle

Podにはいくつかの phase がある。

  • Pending
    • Kubernetesによって承認されたが、一つ以上のコンテナが作成されていない状態。ImageのPullやInit Containerの処理中がこの状態にあたる
  • Running
    • コンテナが作成され、少なくとも1つのコンテナが実行されているか開始・再起動中の状態
  • Succeeded
    • Pod内の全てのコンテナが正常に終了し、再起動されていない状態
  • Failed
    • Pod内の全てのコンテナが終了し、少なくとも1つ以上のコンテナの終了ステータスが0以外だったか、Kubernetesによって強制終了させられた場合この状態になる
  • Unknown
    • 何らかの理由によりPodのサーバーと通信が失敗し、Podの状態を取得できなかった際の状態

Lifecycle Events

コンテナが開始された際とPodが削除される際にHookして任意の処理を実行することが出来る

  • postStart
    • コンテナが作成された後、即座に実行される。このHandlerが失敗した場合終了させ、 restartPolicy に従い再起動させる
  • preStop
    • コンテナが終了される前に実行される。コンテナのルートプロセスに対して SIGTERM が送出される前にこのHandlerが実行される。
    • preStop が定義されている場合それを実行する。 ここでコンテナの終了処理を行うが、 preStop が先に終了してしまうとコンテナ側が処理中だとしてもKubernetesはコンテナに対してSIGTERMを送信してしまう。 これを防ぎたい場合は、 preStop 側でSleepさせるなどの待機処理を入れて待たせる必要がある。

Lifecycle Handler

postStart や preStop に指定できるHandlerの種類は以下の通り。

  • exec
    • コンテナ内でコマンドを実行
  • httpGet
    • HTTPのGETリクエストを発行
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?