Skip to content

Kubernetes Pod Resource: Deployment, StatefulSet and DaemonSet

Kubernetes の主要なワークロードリソースの違い

Section titled “Kubernetes の主要なワークロードリソースの違い”

Kubernetes には、Pod を管理するための複数のコントローラがあります。 その中でもよく使われるのが Deployment, StatefulSet, DaemonSet です。 それぞれの特徴と用途を以下にまとめます。

  • 目的: ステートレスなアプリケーションを管理する。
  • 特徴:
    • Pod のレプリカを指定した数だけ作成し、負荷分散を行う。
    • Pod はすべて同一であり、順序や固有 ID は不要。
    • ローリングアップデートやロールバックが可能。
  • ユースケース:
    • Web アプリケーション、API サーバーなどのスケールアウトが必要なサービス。
  • 目的: ステートフルなアプリケーションを管理する。
  • 特徴:
    • 各 Pod に一意の名前(インデックス)を付与。
    • Pod の起動順序や停止順序を保証。
    • 永続ストレージ(PersistentVolume)と組み合わせて、Pod ごとに専用のストレージを保持。
  • ユースケース:
    • データベース、分散システム(Kafka、ZooKeeper など)、キャッシュサーバー。
  • 目的: クラスタ内のすべてのノードに Pod を配置する。
  • 特徴:
    • ノード追加時に自動的に Pod を配置。
    • ノードごとに 1 つの Pod を実行する。
  • ユースケース:
    • ログ収集エージェント(Fluentd など)、モニタリングエージェント(Prometheus Node Exporter など)、ネットワーク関連サービス。