Sobes.tech
Middle

Kubernetesda DaemonSet ning amaliy qo'llanilishi nima?

sobes.tech AI

AIdan javob

DaemonSet klasterdagi barcha (yoki belgilangan kichikroq to'plamdagi) tugunlarda pod ishga tushirilishini ta'minlaydi. Bu har bir tugunda ishlash kerak bo'lgan tizim demonlarini joylashtirish uchun foydalidir.

Amaliy qo'llanmalar:

  • Loglarni yig'ish: Har bir tugunda loglarni yig'uvchi agentni (masalan, Fluentd, Logstash) ishga tushirish va loglarni markaziy saqlashga yuborish.
  • Tugunlarni monitoring qilish: Har bir tugunda monitoring agentini (masalan, Prometheus Node Exporter, Datadog Agent) joylashtirish va tugun holati metriklarini yig'ish.
  • Klaster saqlash: Har bir tugunda tarqatilgan saqlash demonini (masalan, Ceph, Glusterfs) ishga tushirish va tarqatilgan saqlashni ta'minlash.
  • Xavfsizlik agentlari: Har bir tugunda xavfsizlik yoki audit agentlarini joylashtirish.

Deployment bilan farqi: DaemonSet har bir tugunda pod yaratadi, Deployment esa klaster bo'ylab belgilangan replikalar sonini saqlashga harakat qiladi va ularni mavjud tugunlar orasida taqsimlaydi.

Loglarni yig'ish agenti uchun DaemonSet misoli:

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 manzili misoli
        - 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 yangi tugunlarda avtomatik ravishda pod qo'shadi va tugun klasterdan olib tashlanganda uni olib tashlaydi.