Middle
Kubernetesте Deployment жана DaemonSet ортосунда кандай айырма бар?
sobes.tech AI
AIден жооп
Deployment Pod'тордун репликалар топтомун башкаруу менен алардын талап кылынган санын жана автоматтык масштабдоону камсыздайт. Ал көбүнчө 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 көчүрмө ишке киргизүү
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