Middle
Ի՞նչ է տարբերությունը Deployment և DaemonSet-ի միջև Kubernetes-ում։
sobes.tech AI
Պատասխան AI-ից
Deployment կառավարում է ռեպլիկների հավաքածուն, ապահովելով նրանց պահանջվող քանակը և ավտոմատ ընդլայնումը: Դա լավ է աշխատում մեծ մասամբ stateless հավելվածների համար:
DaemonSet ապահովում է, որ պատճենը Pod-ի կշարունակվի գործարկել յուրաքանչյուր հանգույցում (կամ որոշ հանգույցների վրա, որոնք սահմանված են սելեկտորով): Օգտագործվում է ֆոնային առաջադրանքների համար, ինչպիսիք են լոգների հավաքումը կամ մոնիտորինգը:
Ահա հիմնական տարբերությունները:
| Գծագիր | Deployment | DaemonSet |
|---|---|---|
| Մտադրություն | Պահպանել նշված քանակի Pod ռեպլիկներ | Մի Pod-ի գործարկում յուրաքանչյուր հանգույցում (կամ որոշ հանգույցների վրա) |
| Քանակ Pod-ների | Կառավարվում է replicas պարամետրով |
Սահմանվում է հանգույցների քանակով |
| Մեծացում | Հորիզոնական, ըստ պահանջի | Կապված հանգույցների ավելացման/հեռացման հետ |
| Օգտագործման օրինակներ | Վեբ սերվերներ, միկրոսերվիսներ | Լոգների հավաքողներ, մոնիտորինգի գործակալներ, ցանցային դեմոններ |
| Թարմացում | Հետագամ (rolling update) կամ փոխարինող | Ավտոմատ թարմացվում է հանգույցների վրա ըստ անհրաժեշտության |
Նմուշ մանিফեստ Deployment-ի համար:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Գործարկել 3 պատճեն Pod-ի
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
Նմուշ մանიფեստ DaemonSet-ի համար:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentbit-daemonset
spec:
selector:
matchLabels:
name: fluentbit # Սելեկտորի համար նշան Pod-երի
template:
metadata:
labels:
name: fluentbit
spec:
containers:
- name: fluentbit
image: fluent/fluent-bit:1.8 # Լոգների հավաքողի պատկեր
# Ավելացուցիչ կարգավորումներ՝ մուտք գործելու համար լոգ ֆայլեր և այլն
tolerations:
# հաճախ անհրաժեշտ է աշխատելու համար մաստեր հանգույցներում
- key: node-role.kubernetes.io/master
effect: NoSchedule