Middle
Wat is de praktische toepassing van DaemonSet in Kubernetes?
sobes.tech AI
Antwoord van AI
DaemonSet zorgt ervoor dat een pod wordt uitgevoerd op alle (of een opgegeven subset van) knooppunten in het cluster. Dit is handig voor het uitrollen van systeem-daemons die op elke knoop moeten draaien.
Praktische toepassingen:
- Logverzameling: Het uitvoeren van een logverzamelagent (bijvoorbeeld Fluentd, Logstash) op elke knoop om logs naar een gecentraliseerde opslag te sturen.
- Knoopmonitoring: Het uitrollen van een monitoringagent (bijvoorbeeld Prometheus Node Exporter, Datadog Agent) op elke knoop om de statusmetingen van de knoop te verzamelen.
- Clusteropslag: Het uitvoeren van een opslagdaemon (bijvoorbeeld Ceph, Glusterfs) op elke knoop om gedistribueerde opslag te garanderen.
- Beveiligingsagents: Het uitrollen van beveiligings- of auditagents op elke knoop.
Verschil met Deployment: DaemonSet maakt een pod op elke knoop, terwijl Deployment probeert een vastgesteld aantal replicas in het hele cluster te behouden en deze over de beschikbare knopen te verdelen.
Voorbeeld van een DaemonSet-manifest voor een logverzamelagent:
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" # Voorbeeldadres 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 voegt automatisch een pod toe op nieuwe knooppunten en verwijdert deze wanneer een knooppunt uit het cluster wordt verwijderd.