Middle
Mis on DaemonSet praktiline rakendus Kubernetesis?
sobes.tech AI
Vastus AI-lt
DaemonSet tagab, et pod töötab kõigil (või määratud alamrühmas) klastri sõlmedel. See on kasulik süsteemsete demonite juurutamiseks, mis peavad töötama igal sõlmel.
Praktilised rakendused:
- Logide kogumine: Logide kogumise agendi (näiteks Fluentd, Logstash) käivitamine igal sõlmel, et logid saadetaksid tsentraliseeritud salvestuskohta.
- Sõlmede jälgimine: Jälgimisagendi (näiteks Prometheus Node Exporter, Datadog Agent) paigaldamine igale sõlmele, et koguda sõlme oleku metrikat.
- Klastrite salvestus: Jaotatud salvestuslahenduse (näiteks Ceph, Glusterfs) käivitamine igal sõlmel, et tagada jaotatud salvestus.
- Turvagagentide paigaldamine: Turva- või auditiagentide paigaldamine igale sõlmele.
Erinevus Deploymentist: DaemonSet loob iga sõlme jaoks pordi, samas kui Deployment püüab säilitada kogu klastris määratud replikate arvu, jaotades need olemasolevatele sõlmedele.
DaemonSet näide logide kogumise agendile:
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" # Näide Elasticsearchi aadressist
- 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 lisab automaatselt pordi iga uue sõlme jaoks ja eemaldab selle, kui sõlm eemaldatakse klasterist.