Sobes.tech
Middle

Kāda ir DaemonSet praktiskā pielietojuma Kubernetes?

sobes.tech AI

Atbilde no AI

DaemonSet nodrošina, ka pods irdar tiekts visās (vai norādītajās) klastera mezglos. Tas ir noderīgi sistēmiskiem demoniem, kas jādarbojas katrā mezglā.

Praktiski pielietojumi:

  • Žurnālu vākšana: Žurnālu vākšanas aģenta (piemēram, Fluentd, Logstash) izvietošana katrā mezglā, lai žurnāli tiktu pārsūtīti uz centralizētu glabātuvi.
  • Mezgla uzraudzība: Uzraudzības aģenta (piemēram, Prometheus Node Exporter, Datadog Agent) izvietošana katrā mezglā, lai savāktu mezgla stāvokļa metriku.
  • Klastera glabātuve: Izplatītas glabāšanas (piemēram, Ceph, Glusterfs) izvietošana katrā mezglā, lai nodrošinātu izplatītu glabāšanu.
  • Drošības aģenti: Drošības vai audita aģentu izvietošana katrā mezglā.

Atšķirība no Deployment: DaemonSet izveido podu katrā mezglā, kamēr Deployment cenšas uzturēt noteiktu repliku skaitu visā klasterī, sadalot tās pieejamajos mezglos.

DaemonSet piemērs žurnālu vākšanas aģentam:

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" # Piemērs Elasticsearch adrese
        - 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 automātiski pievieno podu jauniem mezgliem un noņem to, ja mezgls tiek izņemts no klastera.