Sobes.tech
Middle

Kāda ir atšķirība starp Deployment un DaemonSet Kubernetes?

sobes.tech AI

Atbilde no AI

Deployment pārvalda Pod kopiju kopumu, nodrošinot to nepieciešamo skaitu un automātisko mērogošanu. Tas ir piemērots lielākajai daļai stateless lietojumprogrammu.

DaemonSet nodrošina, ka katrā mezglā (vai mezglu apakškopā, kas noteikts ar selektoru) tiks palaists Pod kopija. To izmanto fonu uzdevumiem, piemēram, žurnālu vākšanai vai uzraudzībai.

Šeit ir galvenās atšķirības:

Raksturlielums Deployment DaemonSet
Mērķis Saglabāt noteiktu Pod repliku skaitu Palaist vienu Pod katrā mezglā (vai apakškopā)
Pod skaits Kontrolē ar replicas parametru Nosaka mezglu skaits
Mērogošana Horizontāla, pēc pieprasījuma Saistīta ar mezglu pievienošanu/noņemšanu
Piemēri lietošanai Tīmekļa serveri, mikrosistēmas Žurnālu vācēji, uzraudzības aģenti, tīkla demoni
Atjaunināšana Pakāpeniska (rolling update) vai aizvietošana Automātiski atjauninās mezglos pēc nepieciešamības

Deployment piemēra manifests:

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

DaemonSet piemēra manifests:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentbit-daemonset
spec:
  selector:
    matchLabels:
      name: fluentbit # Pod selektora marķējums
  template:
    metadata:
      labels:
        name: fluentbit
    spec:
      containers:
      - name: fluentbit
        image: fluent/fluent-bit:1.8 # Žurnālu vācēja attēls
        # Papildu iestatījumi piekļuvei pie žurnālu failiem un citi
      tolerations:
      # Bieži nepieciešams darbam ar galveno mezglu
      - key: node-role.kubernetes.io/master
        effect: NoSchedule