一 DaemonSet
(1)基本概念和应用场景
典型:
1) 'flannel,calico'网络插件-->'实现CNI接口'
2) 'ceph'存储插件 -->'实现CSI接口'
3) 'prometheus'监控收集 -->'各种监控指标信息收集'
4) 'logstash'日志收集 -->'各种应用日志收集'
5) 'npd'节点健康检查 -->在每个Node运行一个'健康程序',采集NODE的'运行性能数据'
备注: agent
(2)调度问题
(3)案例
注意: '不需要'指定pod的副本数目-->'replicsa',其它定义'类同'
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-ds
namespace: default
spec:
selector:
matchLabels:
k8s-app: nginx
template:
metadata:
labels:
k8s-app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- name: http
containerPort: 80
我们观察可以发现'除了 master 节点之外'的2个节点上'都有一个相应的 Pod 运行',因为 master 节点上默认被'打上了污点',所以'默认情况下不能调度'普通的 Pod 上去
后续讲解'调度器'的时候讲解'如何调度上去'
(4)拓扑图
集群中的 Pod 和 Node 是'一一对应'的,而 'DaemonSet 会管理'全部机器上的 Pod 副本,负责对它们进行'更新和删除'
(5)思考
DaemonSet 控制器是'如何保证'每个 Node 上'有且只有一个'被管理的 Pod 呢?