Middle
Kokia yra DaemonSet praktinė taikymo sritis Kubernetes?
sobes.tech AI
Atsakymas iš AI
DaemonSet užtikrina, kad podas būtų paleistas visuose (ar nurodytame pogrupyje) klasterio mazguose. Tai naudinga sisteminių demonų diegimui, kurie turi veikti kiekviename mazge.
Praktiniai taikymai:
- Žurnalo įrašų rinkimas: Žurnalo įrašų rinkimo agento (pvz., Fluentd, Logstash) paleidimas kiekviename mazge, kad žurnalai būtų perduoti į centralizuotą saugyklą.
- Mazgų stebėjimas: Stebėjimo agento (pvz., Prometheus Node Exporter, Datadog Agent) diegimas kiekviename mazge, kad būtų surinkti mazgo būsenos metrikos.
- Klastro saugykla: Distributinės saugyklos (pvz., Ceph, Glusterfs) paleidimas kiekviename mazge, kad būtų užtikrintas paskirstytas saugojimas.
- Saugumo agentai: Saugumo ar audito agentų diegimas kiekviename mazge.
Skirtumas nuo Deployment: DaemonSet sukuria podą kiekviename mazge, o Deployment siekia palaikyti nustatytą replikų skaičių visame klasteryje, paskirstydamas juos prieinamose mazguose.
DaemonSet pavyzdys žurnalo rinkimo agentui:
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" # Pavyzdys Elasticsearch adreso
- 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 automatiškai pridės podą prie naujų mazgų ir pašalins jį, kai mazgas bus pašalintas iš klasterio.