Middle
Какво е практическото приложение на DaemonSet в Kubernetes?
sobes.tech AI
Отговор от AI
DaemonSet гарантира, че подът се изпълнява на всички (или на посочен подмножество) от възлите в клъстера. Това е полезно за разгръщане на системни демони, които трябва да работят на всеки възел.
Практически приложения:
- Събиране на логове: Стартиране на агент за събиране на логове (например Fluentd, Logstash) на всеки възел за пренасочване на логовете към централизирано хранилище.
- Мониторинг на възлите: Разгръщане на агент за мониторинг (например Prometheus Node Exporter, Datadog Agent) на всеки възел за събиране на метрики за състоянието на възела.
- Кластерно съхранение: Стартиране на демон за съхранение (например Ceph, Glusterfs) на всеки възел за осигуряване на разпределено съхранение.
- Агенти за сигурност: Разгръщане на агенти за сигурност или одит на всеки възел.
Разлика от Deployment: DaemonSet създава под на всеки възел, докато Deployment се стреми да поддържа зададен брой реплики из цялата група, разпределяйки ги между наличните възли.
Пример за манифест на DaemonSet за агент за събиране на логове:
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 автоматично добавя под на всеки нов възел и го премахва, когато възел бъде премахнат от клъстера.