用来部署守护进程,DaemonSet用于在每个 Kubernetes 节点中将守护进程的副本作为后台进程运行,即在每个节点部署一个 Pod副本。

    业务场景:

    • 集群存储守护程序,如 glusterd、ceph 要部署在每个节点上以提供持久性存储;
    • 节点监控守护进程,如 Prometheus 监控集群,在每个节点上运行 node-exporter 进程节点的信息;
    • 日志收集守护程序,如 fluentd 或 logstash,在每个节点上运行以收集容器的日志
    • 节点网络插件,比如 flannel、calico,在每个节点上运行为 Pod 提供网络服务。

    示例:Nginx Pod(nginx-ds.yaml)

    1. apiVersion: apps/v1
    2. kind: DaemonSet
    3. metadata:
    4. name: nginx-ds
    5. namespace: default
    6. spec:
    7. selector:
    8. matchLabels:
    9. k8s-app: nginx
    10. template:
    11. metadata:
    12. labels:
    13. k8s-app: nginx
    14. spec:
    15. containers:
    16. - image: nginx:1.7.9
    17. name: nginx
    18. ports:
    19. - name: http
    20. containerPort: 80