Sobes.tech
Middle

Kokia yra DaemonSet praktinė taikymo sritis Kubernetes?

sobes.tech AI

Atsakymas iš AI

DaemonSet užtikrina, kad podas būtų paleistas visuose (ar nurodytame pogrupyje) klasterio mazguose. Tai naudinga sisteminių demonų diegimui, kurie turi veikti kiekviename mazge.

Praktiniai taikymai:

  • Žurnalo įrašų rinkimas: Žurnalo įrašų rinkimo agento (pvz., Fluentd, Logstash) paleidimas kiekviename mazge, kad žurnalai būtų perduoti į centralizuotą saugyklą.
  • Mazgų stebėjimas: Stebėjimo agento (pvz., Prometheus Node Exporter, Datadog Agent) diegimas kiekviename mazge, kad būtų surinkti mazgo būsenos metrikos.
  • Klastro saugykla: Distributinės saugyklos (pvz., Ceph, Glusterfs) paleidimas kiekviename mazge, kad būtų užtikrintas paskirstytas saugojimas.
  • Saugumo agentai: Saugumo ar audito agentų diegimas kiekviename mazge.

Skirtumas nuo Deployment: DaemonSet sukuria podą kiekviename mazge, o Deployment siekia palaikyti nustatytą replikų skaičių visame klasteryje, paskirstydamas juos prieinamose mazguose.

DaemonSet pavyzdys žurnalo rinkimo agentui:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      containers:
      - name: fluentd-elasticsearch
        image: fluentd/fluentd-kubernetes-daemonset:v1.14-debian-elasticsearch7-1
        env:
        - name:  FLUENT_ELASTICSEARCH_HOST
          value: "elasticsearch.default.svc.cluster.local" # Pavyzdys Elasticsearch adreso
        - name:  FLUENT_ELASTICSEARCH_PORT
          value: "9200"
        - name: FLUENT_ELASTICSEARCH_SCHEME
          value: "http"
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

DaemonSet automatiškai pridės podą prie naujų mazgų ir pašalins jį, kai mazgas bus pašalintas iš klasterio.