Sobes.tech
Middle

Ի՞նչ է տարբերությունը Deployment և DaemonSet-ի միջև Kubernetes-ում։

sobes.tech AI

Պատասխան AI-ից

Deployment կառավարում է ռեպլիկների հավաքածուն, ապահովելով նրանց պահանջվող քանակը և ավտոմատ ընդլայնումը: Դա լավ է աշխատում մեծ մասամբ 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