Sobes.tech
Middle

Care este diferența dintre Deployment și DaemonSet în Kubernetes?

sobes.tech AI

Răspuns de la AI

Deployment gestionează un set de replici ale Pod-urilor, asigurând numărul necesar și scalarea automată. Se potrivește pentru majoritatea aplicațiilor stateless.

DaemonSet garantează că o copie a Pod-ului va fi rulată pe fiecare nod (sau pe un subset de noduri, în funcție de selector) din cluster. Este utilizat pentru sarcini de fundal, cum ar fi colectarea de loguri sau monitorizare.

Iată diferențele cheie:

Caracteristică Deployment DaemonSet
Scop Menținerea unui număr definit de replici de Pod-uri Rularea unui Pod pe fiecare nod (sau subset)
Număr de Pod-uri Controlat de parametrul replicas Determinat de numărul de noduri
Scalare Orizontal, la cerere Legat de adăugarea/eliminarea nodurilor
Exemple de utilizare Servere web, microservicii Colectori de loguri, agenți de monitorizare, demonii de rețea
Actualizare Gradual (actualizare în rulare) sau înlocuire Se actualizează automat pe noduri după necesitate

Exemplu de manifest pentru Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # Pornește 3 copii ale Pod-ului
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Exemplu de manifest pentru DaemonSet:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Etichetă pentru selectorul Pod-urilor
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Imagine pentru colectorul de loguri
        # Configurări suplimentare pentru accesul la fișierele de log, etc.
      tolerations:
      # Adesea necesar pentru rularea pe nodurile master
      - key: node-role.kubernetes.io/master
        effect: NoSchedule