Sobes.tech
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