k8s/APP配布

DaemonSet、StatefulSet

YOOANT 2026. 5. 9. 22:55

1.DaemonSet

クラスター内の全ノード(または特定のノード)に、Podを必ず一つずつデプロイするリスーすである。

  • DaemonSetとDeploymentを比較すると、replicasの有無を除けば構成は同一である。

1-1.DaemonSet作成

apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: ds-nginx 
  name: ds-nginx
spec:
  selector:
    matchLabels:
      app: po-nginx 
  template:
    metadata:
      labels:
        app: po-nginx
    spec:
      containers:
      - name: nginx 
        image: nginx

1-2.動作確認

①replicasが設定されていないにもかかわらず、Podが各ワーカーノードにデプロイされた。

※新規ワーカーノードが追加された場合、DaemonSetによって新規ノードにも自動的にデプロイされる。


2.StatefulSet

Podごとに「固有の識別子(名前)」と「専用ストレージ(データ)」を付与し、再起動してもそれらが維持されるように管理するリソースである。

  • StatefulSetとDeploymentを比較すると、serviceNameの有無を除けば構成は同一である。
  • serviceNameの指定は強制ルール(必須項目)である。
  • StatefulSetでデプロイすると、Podは正確な順序に基づいた固定の名前を持つ。
  • k8sエコシステムにおいて、唯一「状態(ステート)」を持つ独立した存在である。

2-1.StatefulSet作成

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: sts-chk-hn
spec:
  replicas: 3
  serviceName: sts-svc-domain #statefulset need it
  selector:
    matchLabels:
      app: sts
  template:
    metadata:
      labels:
        app: sts
    spec:
      containers:
      - name: chk-hn
        image: sysnet4admin/chk-hn

2-2.動作確認

①0番から順に(順次)生成された。

②scaleoutすると、順次(順番に)増えていく。

③scaleinすると、順次(順番に)減っていく。

'k8s > APP配布' 카테고리의 다른 글

Job、CronJob  (0) 2026.05.09
command/args  (0) 2026.05.09
Deployment、ReplicaSet  (0) 2026.05.08

日本語