【デーモンセット】

DaemonSet とは?

最終更新:
💡 対象のノードそれぞれに、必要なPodを配る管理係

Kubernetesで、対象ノードごとにPodを配置・管理するリソース。ログ収集などの用途、ノード選択とtolerations、配置と起動成功の違いを説明します。

📌 このページのポイント
DaemonSet:対象ノードごとにPodDaemonSetの管理ノード1Podログ収集ノード2Podログ収集ノード3Podログ収集対象ノードが増えれば、その分を管理ノード選択・配置条件・起動状態も確認する
三つの対象ノードでログ収集のPodを動かす例。選択条件で対象を絞ることができ、作成されたPodが正常に稼働するかも確認します。
ひよこ ひよこ
DaemonSetは、Podを三つ作る指示と違うの?
ペンギン先生 ペンギン先生
Deploymentなどのレプリカ数で管理する考え方に対して、DaemonSetは対象ノードごとにPodを配置するよ。全ノードを対象にもできるし、条件で一部を選ぶこともできるんだ。
ひよこ ひよこ
どんな機能を、各ノードに置くの?
ペンギン先生 ペンギン先生
ログ収集や監視のエージェント、ネットワークを支える機能などだよ。そのノードの情報を集めたり、ノード単位で働いたりする機能に使う。配置しただけでログがすべて集まるわけではなく、収集対象や送信先も設定するんだ。
ひよこ ひよこ
新しいノードが増えたら、手でPodを作る?
ペンギン先生 ペンギン先生
対象条件を満たすノードには、DaemonSetがPodを作って管理するよ。ノードが削除されれば対応するPodも整理される。ノードのラベルが変わって対象から外れた場合も、配置が調整されるんだ。
ひよこ ひよこ
特殊なノードにも、必ず起動できる?
ペンギン先生 ペンギン先生
nodeSelectorやnodeAffinityは配置するノードの選択に使う。tolerationsはtaintによる制限を許容する設定で、特定ノードを選ぶ指定ではないよ。資源や他の配置条件も必要なので、Podが作られたことと正常に動いていることを分けて確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DaemonSet」って出てきたら「対象ノードごとに必要なPodを配置する管理係」と思えばだいたいOK!
📖 おまけ:英語の意味
「DaemonSet」 = ノード単位の常駐機能を持つPodを管理するリソース名
💬 Kubernetesのリソースです。レプリカ数だけを指定する考え方と、対象ノードそれぞれで機能を動かす考え方を区別します。

参考資料

← 用語集にもどる