Middle
Mi a különbség a Deployment és a DaemonSet között a Kubernetes-ben?
sobes.tech MI
Válasz az MI-től
A Deployment egy Pod-replikák halmazát kezeli, biztosítva a szükséges számot és az automatikus skálázást. Jó választás a legtöbb stateless alkalmazáshoz.
A DaemonSet garantálja, hogy egy példány a Podból minden csomóponton (vagy a kiválasztó szerint meghatározott csomóponton) fut. Háttérfeladatokra, például naplógyűjtésre vagy megfigyelésre használják.
Íme a fő különbségek:
| Jellemző | Deployment | DaemonSet |
|---|---|---|
| Cél | Egy meghatározott számú Pod-replika fenntartása | Egy Pod futtatása minden csomóponton (vagy alcsomóponton) |
| Podok száma | A replicas paraméterrel irányított |
A csomópontok számától függően alakul |
| Skálázás | Horizontális, igény szerint | A csomópontok hozzáadásával/eltávolításával kapcsolatos |
| Használati példák | Web szerverek, mikro-szolgáltatások | Naplógyűjtők, megfigyelő agentek, hálózati démonok |
| Frissítés | Fokozatos (rolling update) vagy helyettesítő | Automatikusan frissül a csomópontokon szükség szerint |
Deployment példája:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # 3 példány indítása
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
DaemonSet példája:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentbit-daemonset
spec:
selector:
matchLabels:
name: fluentbit # Pod kiválasztó címke
template:
metadata:
labels:
name: fluentbit
spec:
containers:
- name: fluentbit
image: fluent/fluent-bit:1.8 # Naplógyűjtő kép
# További beállítások a naplófájlokhoz való hozzáféréshez, stb.
tolerations:
# Gyakran szükséges a master csomópontokon való futtatáshoz
- key: node-role.kubernetes.io/master
effect: NoSchedule