Middle
Wat is het verschil tussen Deployment en DaemonSet in Kubernetes?
sobes.tech AI
Antwoord van AI
Deployment beheert een set van Pod-replicaties, zorgt voor het vereiste aantal en automatische schaalvergroting. Het is geschikt voor de meeste stateless applicaties.
DaemonSet garandeert dat een kopie van de Pod wordt uitgevoerd op elke knoop (of op een subset van knopen, afhankelijk van de selector) van de cluster. Gebruikt voor achtergrondtaken zoals logverzameling of monitoring.
Hier zijn de belangrijkste verschillen:
| Kenmerk | Deployment | DaemonSet |
|---|---|---|
| Doel | Het handhaven van een vastgesteld aantal Pod-replicaties | Het uitvoeren van één Pod op elke knoop (of subset) |
| Aantal Pods | Beheerd door de parameter replicas |
Bepaald door het aantal knopen |
| Schaalvergroting | Horizontaal, op aanvraag | Gerelateerd aan het toevoegen/verwijderen van knopen |
| Voorbeelden van gebruik | Webservers, microservices | Logverzamelaars, monitoring agents, netwerk-daemons |
| Update | Gestaag (rolling update) of vervangend | Wordt automatisch bijgewerkt op de knopen indien nodig |
Voorbeeld manifest voor Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Start 3 kopieën van Pod
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Voorbeeld manifest voor DaemonSet:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentbit-daemonset
spec:
selector:
matchLabels:
name: fluentbit # Label voor de Pod-selector
template:
metadata:
labels:
name: fluentbit
spec:
containers:
- name: fluentbit
image: fluent/fluent-bit:1.8 # Afbeelding voor de logverzamelaar
# Extra instellingen voor toegang tot logbestanden, etc.
tolerations:
# Vaak nodig om op master knopen te draaien
- key: node-role.kubernetes.io/master
effect: NoSchedule