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 კოპიის 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