【デーモンセット】

DaemonSet とは?

💡 全ノードに欠かさず配備される、縁の下の守り番
📌 このページのポイント
DaemonSet: 全ノードに1つずつPodを配置 DaemonSet Node 1 Pod (例: Fluentd) ログ収集エージェント Node 2 Pod (例: Fluentd) ログ収集エージェント Node 3 Pod (例: Fluentd) ログ収集エージェント ノードが追加されると自動でPodが起動する
DaemonSetは全ノードに1つずつPodを自動配置する
ひよこ ひよこ

DaemonSetって何?Deploymentと何が違うの?

ペンギン先生 ペンギン先生

DaemonSetはクラスター内の全ノードに1つずつPodを置く仕組みだよ。Deploymentは「このPodを3つ動かしてね」って個数で指定するけど、DaemonSetは「全ノードに1つずつ」って考え方なんだ。

ひよこ ひよこ

全ノードに1つずつって、どんなときに使うの?

ペンギン先生 ペンギン先生

ログ収集エージェントやモニタリングエージェント、ネットワークプロキシなんかに使われるよ。どのノードで何が動いてもログを漏れなく集めたいとか、全ノードのメトリクスを取りたいときに便利だね。

ひよこ ひよこ

ノードが増えたらどうなるの?

ペンギン先生 ペンギン先生

新しいノードが追加されると、DaemonSetのPodが自動的にそのノードに起動するよ。逆にノードが削除されたらPodも一緒に消えてくれる。手動で管理しなくていいのが嬉しいところだね。

ひよこ ひよこ

特定のノードだけに置くこともできるの?

ペンギン先生 ペンギン先生

できるよ!nodeSelectorやnodeAffinityを使えば「このラベルのノードだけ」って絞り込める。さらにtolerationsを設定すれば、通常は避けられるマスターノードや特殊なノードにも配置できるんだ。

ひよこ ひよこ

DaemonSetで動かすのにおすすめの具体的なツールはあるの?

ペンギン先生 ペンギン先生

Fluentd(ログ収集)、Prometheus Node Exporter(メトリクス収集)、Calico・Flannel(ネットワークプラグイン)、kube-proxy(クラスター内ネットワーク)なんかが代表的だよ。クラスターの基盤を支えるコンポーネントによく使われるんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DaemonSet」って出てきたら「全ノードに1個ずつ常駐するPod管理係」と思えればだいたいOK!
📖 おまけ:英語の意味
「DaemonSet」 = デーモンの集合体
💬 Unixの「デーモン」(バックグラウンドで常駐するプロセス)に由来。全ノードで常時動くPodの集合という意味で「DaemonSet」と名付けられたんだよ。
← 用語集にもどる