DaemonSet 确保全部/部分节点上运行一个 Pod 的副本
当有节点加入集群时,会为他们新增一个 Pod
当有节点从集群移除时,这些 Pod也会被回收
删除 DaemonSet将会删除它创建的所有 Pod
应用场景:
在每个节点上运行网络插件
在每个节点上运行集群守护进程
在每个节点上运行监控守护进程
在每个节点上运行日志收集守护进程
DaemonSet 的yaml文件和 Deployment类似, 需要修改类型, 去掉副本数, 如果希望在所有节点运行, 还需要添加污点容忍
test-daemonset.yaml内容如下
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: web
name: web
namespace: default
spec:
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- image: nginx
name: nginx
tolerations:
- operator: Exists
创建后可以查看到每个节点都新起了一个pod
[root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
web-7d6xf 1/1 Running 0 5m11s 10.244.36.88 k8s-node1 <none> <none>
web-dkqvl 1/1 Running 0 5m11s 10.244.169.148 k8s-node2 <none> <none>
web-fpblt 1/1 Running 0 5m11s 10.244.235.227 k8s-master <none> <none>
[root@k8s-master ~]#