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