Middle
Jaký je rozdíl mezi Deployment a DaemonSet v Kubernetes?
sobes.tech AI
Odpověď od AI
Deployment spravuje sadu replik Podů, zajišťuje požadovaný počet a automatické škálování. Je vhodný pro většinu bezstavových aplikací.
DaemonSet zajišťuje, že kopie Podu poběží na každém uzlu (nebo na podmnožině uzlů, podle selektoru) clusteru. Používá se pro pozadí úkoly, jako je sběr logů nebo monitorování.
Zde jsou klíčové rozdíly:
| Charakteristika | Deployment | DaemonSet |
|---|---|---|
| Cíl | Udržovat stanovený počet replik Podů | Spustit jeden Pod na každém uzlu (nebo podmnožině) |
| Počet Podů | Řídí se parametrem replicas |
Určuje se počtem uzlů |
| Škálování | Horizontální, na požádání | Spojené s přidáváním/odstraňováním uzlů |
| Příklady použití | Webové servery, mikroservisy | Sběrače logů, monitorovací agenty, síťové démony |
| Aktualizace | Postupná (rolling update) nebo nahrazení | Automaticky se aktualizuje na uzlech podle potřeby |
Příklad manifestu pro Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Spustit 3 kopie Podu
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Příklad manifestu pro DaemonSet:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentbit-daemonset
spec:
selector:
matchLabels:
name: fluentbit # Štítek pro selektor Podů
template:
metadata:
labels:
name: fluentbit
spec:
containers:
- name: fluentbit
image: fluent/fluent-bit:1.8 # Obrázek pro sběrače logů
# Další nastavení pro přístup k souborům logů atd.
tolerations:
# Často nutné pro spuštění na master uzlech
- key: node-role.kubernetes.io/master
effect: NoSchedule