Sobes.tech
Middle

Kuo skiriasi Deployment ir DaemonSet Kubernetes?

sobes.tech AI

Atsakymas iš AI

Deployment valdo pod'ų kopijų rinkinį, užtikrindamas jų reikiamą skaičių ir automatinį mastelio keitimą. Jis gerai tinka daugumai stateless programų.

DaemonSet užtikrina, kad kiekviename mazge (arba mazgų pogrupyje, apibrėžtame selektoriuje) būtų paleistas Pod kopija. Jis naudojamas foninėms užduotims, tokioms kaip logų rinkimas ar stebėsena.

Štai pagrindiniai skirtumai:

Savybė Deployment DaemonSet
Tikslas Išlaikyti nustatytą Pod kopijų skaičių Paleisti vieną Pod kiekviename mazge (arba pogrupyje)
Pod'ų skaičius Valdomas replicas parametru Nustatomas mazgų skaičiumi
Mastelio keitimas Horizontalus, pagal poreikį Susijęs su mazgų pridėjimu/pašalinimu
Pavyzdžiai naudojimo Žiniatinklio serveriai, mikroservisai Logų rinkėjai, stebėjimo agentai, tinklo demonai
Atnaujinimas Palaipsniui (rolling update) arba keičiant Automatiškai atnaujinama mazguose pagal poreikį

Pavyzdinis Deployment manifestas:

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

Pavyzdinis DaemonSet manifestas:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod'ų selektoriaus žymė
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Logų rinkėjo vaizdas
        # Papildomi nustatymai prieigai prie logų failų ir kt.
      tolerations:
      # Dažnai reikalinga paleisti ant master mazgų
      - key: node-role.kubernetes.io/master
        effect: NoSchedule