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