Sobes.tech
Middle

Koja je razlika između Deployment i DaemonSet u Kubernetesu?

sobes.tech АИ

Одговор од АИ

Deployment upravlja skupom replika Pod-ova, obezbeđujući potrebni broj i automatsko skaliranje. Pogodan je za većinu stateless aplikacija.

DaemonSet garantuje da će kopija Pod-a biti pokrenuta na svakom čvoru (ili na podskupu čvorova, u zavisnosti od selektora) klastera. Koristi se za pozadinske zadatke, kao što je prikupljanje logova ili monitoring.

Evo ključnih razlika:

Karakteristika Deployment DaemonSet
Cilj Održavanje zadatog broja replika Pod-ova Pokretanje jednog Pod-a na svakom čvoru (ili podskupu)
Broj Pod-ova Kontroliše se parametrima replicas Određuje se brojem čvorova
Skaliranje Horizontalno, na zahtev Povezano sa dodavanjem/uklanjanjem čvorova
Primeri upotrebe Web serveri, mikroservisi Sakupljači logova, agenti za monitoring, mrežni demoni
Ažuriranje Postepeno (rolling update) ili zamenjujuće Automatski se ažurira na čvorovima po potrebi

Primer manifesta za Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # Pokreni 3 kopije Pod-a
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Primer manifesta za DaemonSet:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Etiketa za selektor Pod-ova
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Slika za sakupljača logova
        # Dodatne postavke za pristup log fajlovima, itd.
      tolerations:
      # Često je potrebno za pokretanje na master čvorovima
      - key: node-role.kubernetes.io/master
        effect: NoSchedule