CKA – Daemonset的使用
什么是 DaemonSet?
当你创建了一个 DaemonSet,Kubernetes 会在每个符合条件的 Node 上启动一个 Pod 副本;当有新的 Node 加入集群时,也会自动在该节点上调度相应的 Pod;当节点被移除时,Pod 也随之被清理。每个worker node生成一个pod。通常DaemonSet都是拿来安装节点级别守护进程,如日志、监控、网络插件。

主要作用与典型场景
- 日志采集
在每个节点上运行日志收集 Agent(如 Fluentd、Filebeat),统一收集容器或节点日志。 - 监控采集
部署节点级监控 Agent(如 Prometheus Node Exporter、Telegraf),采集 CPU/内存/磁盘等指标。 - 网络插件
CNI 插件(如 Calico、Weave Net、Flannel)以 DaemonSet 方式在各节点运行网络代理。 - 存储插件
CSI 驱动的节点插件(Node Plugin)需要在每个节点上运行,用于挂载卷。 - 安全/代理
节点级安全 Agent(如 Falco)或网络代理(如 Istio 的 sidecar-injection Daemon)。
Daemonset和Deployment的区别

使用案例
1. 以下是一个简单的demonset yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: anti-virus
spec:
selector:
matchLabels:
name: antivirus
template:
metadata:
labels:
name: antivirus
spec:
containers:
- name: nginx
image: nginx:latest
2. 查看创建的daemonset , 由于我只有一个worker node所以只创建1个pod而已
kubectl get daemonsets

Facebook评论