Sobes.tech
Middle

Mi a különbség a Deployment és a DaemonSet között a Kubernetes-ben?

sobes.tech MI

Válasz az MI-től

A Deployment egy Pod-replikák halmazát kezeli, biztosítva a szükséges számot és az automatikus skálázást. Jó választás a legtöbb stateless alkalmazáshoz.

A DaemonSet garantálja, hogy egy példány a Podból minden csomóponton (vagy a kiválasztó szerint meghatározott csomóponton) fut. Háttérfeladatokra, például naplógyűjtésre vagy megfigyelésre használják.

Íme a fő különbségek:

Jellemző Deployment DaemonSet
Cél Egy meghatározott számú Pod-replika fenntartása Egy Pod futtatása minden csomóponton (vagy alcsomóponton)
Podok száma A replicas paraméterrel irányított A csomópontok számától függően alakul
Skálázás Horizontális, igény szerint A csomópontok hozzáadásával/eltávolításával kapcsolatos
Használati példák Web szerverek, mikro-szolgáltatások Naplógyűjtők, megfigyelő agentek, hálózati démonok
Frissítés Fokozatos (rolling update) vagy helyettesítő Automatikusan frissül a csomópontokon szükség szerint

Deployment példája:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # 3 példány indítása
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

DaemonSet példája:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod kiválasztó címke
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Naplógyűjtő kép
        # További beállítások a naplófájlokhoz való hozzáféréshez, stb.
      tolerations:
      # Gyakran szükséges a master csomópontokon való futtatáshoz
      - key: node-role.kubernetes.io/master
        effect: NoSchedule