Sobes.tech
Middle

Ի՞նչ է DaemonSet-ի գործնական կիրառումը Kubernetes-ում։

sobes.tech AI

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

DaemonSet երաշխավորում է, որ պոդը գործարկված է բոլոր (կամ նշված ենթակառուցվածքի) հանգույցների վրա։ Սա օգտակար է համակարգային դեմոնների տեղակայման համար, որոնք պետք է աշխատեն յուրաքանչյուր հանգույցում։

Практические применения:

  • Լոգների հավաքում: Լոգների հավաքման գործակալ (օրինակ, Fluentd, Logstash) գործարկում յուրաքանչյուր հանգույցում՝ լոգները կենտրոնական պահեստ տեղափոխելու համար։
  • Հանգույցների մոնիտորինգ: Մոնիտորինգի գործակալ (օրինակ, Prometheus Node Exporter, Datadog Agent) տեղադրում յուրաքանչյուր հանգույցում՝ հանգույցի վիճակի մետրիկները հավաքելու համար։
  • Կլաստերային պահեստ: Դիստրիբյուցիոն պահեստի գործարկում (օրինակ, Ceph, Glusterfs) յուրաքանչյուր հանգույցում՝ տարածված պահեստավորման ապահովման համար։
  • Անվտանգության գործակալներ: Անվտանգության կամ աուդիտի գործակալների տեղադրում յուրաքանչյուր հանգույցում։

Տարբերություն Deployment-ից՝ DaemonSet-ը ստեղծում է պոդ յուրաքանչյուր հանգույցում, մինչդեռ Deployment-ը փորձում է պահել պահանջվող ռեպլիկների քանակը ամբողջ կլաստերում՝ դրանք տարածելով հասանելի հանգույցների վրա։

Դեմոնսեթի օրինակ՝ լոգ հավաքող գործակալի համար:

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" # Օրինակ Elasticsearch հասցե
        - 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 ավտոմատ կերպով ավելացնում է պոդը նոր հանգույցներին և հեռացնում այն հանգույցից՝ երբ այն հեռացվում է կլաստից։