by shigemk2

当面は技術的なことしか書かない

deployments vs statefulsets vs daemonsets

medium.com

  • Kubernetes (K8s) は、コンテナ化されたアプリケーションのデプロイメント、スケーリング、管理を自動化するためのオープンソースのコンテナオーケストレーションシステム
  • Kubernetesは、Podという基本リソースを提供
  • Podは、Kubernetesでの最小のデプロイ可能なユニットで、コンテナのラッパー

Kubernetesの異なるリソースを使用して、アプリケーション(Pod)をKubernetesにデプロイする3つの異なる方法について説明

  • Deployments
  • StatefulSets
  • DaemonSets

Deployments

  • アプリケーションをデプロイするための最も簡単で最も使用されるリソース
  • ステートレスアプリケーションに通常使用される
  • デプロイメントは、クラスタの現在の状態をデプロイメントマニフェストに記載されている所望の状態に一致させるKubernetesコントローラ

StatefulSets

  • StatefulSetは、ステートフルアプリケーションを管理するために使用されるKubernetesリソース
    • それはPodの順序と一意性についての保証を提供
  • ステートフルセットの各レプリカは独自の状態を持ち、各Podは独自のPVC(Persistent Volume Claim)を作成

DaemonSets

  • DaemonSetは、Podがクラスタのすべてのノードで実行されることを保証するコントローラ
  • クラスタにノードが追加/削除されると、DaemonSetは自動的にPodを追加/削除
  • DaemonSetの一般的な使用例は、クラスタレベルのアプリケーションを実行すること