DaemonSet(でーもんせっと)
最終更新:2026/4/25
DaemonSetは、Kubernetesクラスターの各ノードにPodを1つずつ展開し、その実行を維持するためのオブジェクトである。
ポイント
DaemonSetは、ログ収集や監視エージェントなど、各ノードで実行する必要があるシステムデーモンを管理するために使用される。
DaemonSetとは
DaemonSetは、Kubernetesクラスタ内のすべての(または特定の)ノードでPodのコピーを確実に実行するためのKubernetesリソースです。これは、クラスタの各ノードで動作する必要がある、例えばログ収集エージェント、監視エージェント、またはネットワークプラグインなどのシステムレベルのタスクを実行するのに役立ちます。
DaemonSetの動作原理
DaemonSetを作成すると、KubernetesはDaemonSetで定義されたPodをクラスタ内の各ノードにスケジュールします。ノードが追加されると、新しいノードにもPodが自動的にデプロイされます。ノードが削除されると、そのノードで実行されていたPodも削除されます。これにより、常に各ノードで必要な数のPodが実行されていることが保証されます。
DaemonSetのユースケース
DaemonSetは、以下のようなユースケースで役立ちます。
- ログ収集: 各ノードからログを収集し、中央のログ集約システムに送信するエージェント。
- 監視: 各ノードのシステムリソース(CPU、メモリ、ディスクなど)を監視し、メトリクスを収集するエージェント。
- ネットワークプラグイン: 各ノードで動作し、Pod間のネットワーク接続を管理するプラグイン。
- ストレージ: 各ノードで動作し、ストレージボリュームを管理するプラグイン。
DaemonSetの定義
DaemonSetは、YAMLまたはJSON形式で定義されます。定義には、Podのテンプレート、ノードセレクタ(特定のノードにPodをデプロイする場合)、および更新戦略が含まれます。
DaemonSetの更新
DaemonSetの定義が変更された場合、Kubernetesは自動的にPodを更新します。更新戦略には、RollingUpdate(Podを徐々に更新する)とOnDelete(手動でPodを削除するまで更新しない)の2種類があります。