Что такое DaemonSet

«Что такое DaemonSet» — вопрос из категории Kubernetes, который задают на 31% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DaemonSet — это объект Kubernetes, который гарантирует, что на каждом (или выбранном) узле кластера будет работать копия указанного Pod. Используется для системных задач, таких как логирование, мониторинг или сетевые агенты.

Пример манифеста:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      containers:
      - name: fluentd-elasticsearch
        image: fluent/fluentd-kubernetes-daemonset:v1.4.2-debian-elasticsearch-1.1

Ключевые особенности:

  • Автоматически разворачивает Pod на новых узлах
  • Игнорирует taints и tolerations (если не указано иное)
  • Удаляет Pod при удалении узла из кластера