Sobes.tech
Middle

Kubernetesda Deployment va DaemonSet o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Deployment, Podlarning nusxalar to'plamini boshqaradi, ularning talab qilinadigan sonini ta'minlaydi va avtomatik o'sishni ta'minlaydi. U ko'p stateless ilovalar uchun mos keladi.

DaemonSet, klasterdagi har bir tugun (yoki selektor bo'yicha belgilangan tugunlar to'plami)da Pod nusxasining ishga tushirilishini kafolatlaydi. Bu fon vazifalari uchun, masalan, loglarni yig'ish yoki monitoring uchun ishlatiladi.

Asosiy farqlar quyidagilardir:

Xususiyat Deployment DaemonSet
Maqsad Podlarning belgilangan sonini saqlash Har bir tugunda (yoki to'plamda) Pod ishga tushirish
Podlar soni replicas parametri bilan boshqariladi Tugunlar soniga qarab belgilanadi
O'sish Gorizontal, talabga binoan Tugunlar qo'shilishi/olib tashlanishi bilan bog'liq
Ishlatish misollari Veb-serverlar, mikroservislar Log yig'uvchilar, monitoring agentlari, tarmoq demonlari
Yangilash Bosqichma-bosqich (rolling update) yoki almashtirish Zarur bo'lsa, tugunlarda avtomatik yangilanadi

Deployment uchun misol manifest:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # 3 nusxa Pod ishga tushurish
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

DaemonSet uchun misol manifest:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod selektori uchun etiket
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Log yig'uvchi tasviri
        # Log fayllariga kirish uchun qo'shimcha sozlamalar
      tolerations:
      # Ko'pincha master tugunlarda ishga tushirish uchun zarur
      - key: node-role.kubernetes.io/master
        effect: NoSchedule