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