Sobes.tech
Middle

Kubernetes-də Deployment və DaemonSet arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Deployment Podların ehtiyac olunan sayını təmin edən və avtomatik miqyaslandırma ilə idarə edən bir qrupunu idarə edir. Əksər stateless tətbiqlər üçün uyğundur.

DaemonSet, klasterdəki hər bir nodda (və ya selektor əsasında müəyyən edilmiş nodların alt qismində) Podun nüsxəsinin işlədiyini təmin edir. Bu, arxa plan tapşırıqları üçün, məsələn, logların toplanması və ya monitorinq üçün istifadə olunur.

Əsas fərqlər bunlardır:

Xüsusiyyət Deployment DaemonSet
Məqsəd Təyin olunmuş Pod nüsxələrinin saxlanması Hər nodda (və ya alt qismində) bir Pod işlətmək
Pod sayı replicas parametri ilə idarə olunur Nodeların sayı ilə müəyyən edilir
Miqyaslandırma Üfüqi, tələb əsasında Nodeların əlavə və ya silinməsi ilə əlaqəli
İstifadə nümunələri Veb serverlər, mikroservislər Log toplayıcılar, monitorinq agentləri, şəbəkə demonları
Yeniləmə Yavaş-yavaş (dövr edən yeniləmə) və ya əvəzləmə Lazım olduqda, nodlarda avtomatik yenilənir

Deployment üçün nümunə manifest:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # 3 nüsxə Pod işə salın
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

DaemonSet üçün nümunə manifest:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod seçici etiketi
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Log toplayıcı imici
        # Əlavə konfiqurasiyalar log fayllarına giriş üçün və s.
      tolerations:
      # Master nodlarda işləmək üçün tez-tez lazımdır
      - key: node-role.kubernetes.io/master
        effect: NoSchedule