介绍
DaemonSet是Kubernetes控制器之一,它确保在每个节点上都运行一个Pod的副本。它通常用于运行守护进程或日志收集器等需要在每个节点上运行的应用程序。
使用场景
DaemonSet最常见的使用场景是在Kubernetes集群中部署守护进程。这些守护进程可能是监控或日志收集器,需要在集群的每个节点上运行。DaemonSet可以确保在每个节点上都运行这些守护进程的副本,以便在任何时候都可以收集日志或监控节点。
另一个使用场景是在Kubernetes集群中部署网络插件,例如Calico或Weave Net。这些插件需要在每个节点上运行,以提供网络功能和策略。
使用案列
DaemonSet没有什么特殊的配置,只需要将类型配置对即可,kind: DaemonSet
资源文件清单
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: daemonset
spec:
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
启动观察
# 启动
[root@master daemonsets]# kubectl create -f daemonset.yaml
daemonset.apps/daemonset created
# 查看Pod部署情况,有两个daemonset副本的Pod分别部署在node01和node02
[root@master daemonsets]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
daemonset-bvnzd 1/1 Running 0 19s 10.244.2.116 node02 <none> <none>
daemonset-gsx9g 1/1 Running 0 19s 10.244.1.204 node01 <none> <none>
# 查看daemonset 简写ds
[root@master daemonsets]# kubectl get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset 2 2 2 2 2 <none> 50s
DaemonSet就介绍到这里,比较简单
欢迎关注,学习不迷路!