前言
Deployment 管理的 Pod 允许在一个节点上运行多个副本。
当需要在节点上运行收集日志或者执行监控任务的容器时,显然不适合启动多个 Pod 副本。
这种场景下,我们可以启用 DaemonSet 控制器来管理 Pod。
更新历史
- 20200620 - 初稿 - 左程立
- 原文地址 - https://blog.zuolinux.com/2020/06/20/about-controller-daemonset.html
Daemon Pod 的特点
- Pod 运行在集群中的全部或者部分节点上
- 每个节点上只能有一个这样的 Pod
- 当集群中加入了新节点,Pod 会自动在新节点上创建
- 当节点被从集群中移除后,节点上 Pod 会自动被回收掉
Daemon Pod 适用的场景
- 网络插件的 Agent
- 存储插件的 Agent
- 监控任务的 Agent
- 收集日志的 Agent
DaemonSet
创建一个 DS
cat daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
namespace: kube-system
labels:
k8s-app