CKA – Daemonset的使用

什么是 DaemonSet?

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

主要作用与典型场景

  1. 日志采集
    在每个节点上运行日志收集 Agent(如 Fluentd、Filebeat),统一收集容器或节点日志。
  2. 监控采集
    部署节点级监控 Agent(如 Prometheus Node Exporter、Telegraf),采集 CPU/内存/磁盘等指标。
  3. 网络插件
    CNI 插件(如 Calico、Weave Net、Flannel)以 DaemonSet 方式在各节点运行网络代理。
  4. 存储插件
    CSI 驱动的节点插件(Node Plugin)需要在每个节点上运行,用于挂载卷。
  5. 安全/代理
    节点级安全 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

Loading

Facebook评论