LoginSignup
1
1

More than 3 years have passed since last update.

Kubernetes基礎(11):DaemonSet, Job, CronJobの概要

Posted at

DaemonSet

スクリーンショット 2020-07-14 14.17.53.png
ReplicaSetはPodをスケジューラによってNodeに配置する時、上記の図のようにNode1にresourceが多く残っている状態ならNode1にPodを多く生成し、Node3のようにresourceがなければPodを生成しない。
一方、DaemonSetはNodeのresource状態とは関係なく、すべてのNodeにPodを一つずつ作る特徴がある。
もしNodeが10個なら、それぞれのNodeに1ずつ合計10個のPodが生成される。

このように、それぞれのNodeにインストールをしなければならServiceが下記のように3つあります。
性能収集
各Nodeの性能状態はすべて監視対象になる。
Prometheusのようなagentがインストールされていると全てのNodeの性能状態をモニタリングシステムに送信することができる。
Log収集
特定のNodeに障害が発生した場合は問題を把握するためにLogを分析する必要があるがfluentdのようなサービスが各NodeのLog情報を収集してくれる。
Storage活用
NodeをStorageに活用することができ、GlusterFSのようなサービスをそれぞれのNodeにインストールするとNodeのresourceを使ってネットワークファイルシステムを構築できる。

※Kubernetesもネットワーク管理をするために、各NodeにDaemonSetでProxyの役割をするPodを作成する。

Job&CronJob

Job&CronJob.png
上の図のようにPodを直接作成する場合もあるし、ReplicaSetを使って作成したPodもあるし、Jobを使って作成したPodもある。
全て同じPodだが直接作成したかそれともControllerで作成したかによってPodの違いを説明すると
Podを直接作成した場合は、Node1がダウンされた場合はサービスの運用ができなくなる。(Service Down)
PodをController(ReplicaSet、Job)で作成した場合は、Controllerが障害を検知すると、他のNodeに再生成するので
サービスを引き続き提供できる。
ReplicaSetで作成されたPodは仕事をしないとPodをrestartさせるから、このPodのサービスは、何が起きてもサービスを維持する目的で使わなければならない。
※recreate:Podを再作成するので、Pod name、IP addressが変更される。
※restart:Podは変更せずいにPod内のContainerだけ再起動させる。
Jobで作成されたPodは、プロセスが動いてないとPodは終了となる。
終了の意味はPodが削除されるのではなく、resourceを使用していない即ち止まっている状態である。この状態でもPodの中に入ってLogを確認することができる。
このようにPodを作成する主体によって状況に応じてPodの動作が異なるので、よく知って使う必要がある。
CronJobはJobを定期的に生成する。
殆どJobを1つの単位としては使わずにCronJobを作成して特定の時間に繰り返して実行する目的で使う。
複数のユースケースがありますが
毎日のデータのバックアップとか定期的なアップデートの確認、予約メールやSMSのメッセージを送信などの作業にも使える。

1
1
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
1
1