Sobes.tech
Middle

Mis vahe on Deployment ja DaemonSet Kubernetesis?

sobes.tech AI

Vastus AI-lt

Deployment haldab massiivi Pod'ide koopiaid, tagades nende nõutava arvu ja automaatse skaleerimise. See sobib hästi enamikule stateless rakendustele.

DaemonSet tagab, et iga sõlme (või selektori järgi määratletud sõlmede rühmas) käivitatakse Pod koopia. Seda kasutatakse taustatööde jaoks, nagu logide kogumine või jälgimine.

Siin on peamised erinevused:

Omadus Deployment DaemonSet
Eesmärk Säilitada määratud Pod koopiate arv Käivitada üks Pod iga sõlme (või rühma) kohta
Pod'ide arv Kontrollitakse replicas parameetriga Määratakse sõlmede arvuga
Skaalumine Horisontaalne, nõudmise järgi Seotud sõlmede lisamise/eemaldamisega
Kasutamise näited Veebiserverid, mikroteenused Logide kogujad, jälgimisagendid, võrgudemonid
Uuendamine Aeglane (rolling update) või asendamine Automaatne uuendamine sõlmedel vastavalt vajadusele

Näide Deployment manifestist:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # Käivitada 3 koopiat Pod'ist
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Näide DaemonSet manifestist:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod'ide selektori märgis
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Logide kogumise pilt
        # Täiendavad seaded logifailidele ja muule ligipääsule
      tolerations:
      # Sageli vajalik töötamiseks master sõlmedel
      - key: node-role.kubernetes.io/master
        effect: NoSchedule