DaemonSet 应用 ¶
DaemonSet 资源
-
DaemonSet 用于在集群的每个节点上运行特定的 Pod,确保每个节点都有一个 Pod 的副本在运行。这对于在集群中的每个节点上运行后台任务、监控代理、日志收集器等常驻性任务非常有用。
-
aemonSet 不会根据副本数来调度 Pod。相反,它会根据节点的数量自动创建或删除 Pod,以确保每个节点上都有一个 Pod 的副本在运行。
- 编写YAML文件
编写 daemonset-nginx.yml
apiVersion: apps/v1 kind: DaemonSet metadata: name: daemonset-nginx spec: selector: matchLabels: name: nginx-ds template: metadata: labels: name: nginx-ds spec: tolerations: # tolerations代表容忍 - key: node-role.kubernetes.io/master # 能容忍的污点key effect: NoSchedule # kubectl explain pod.spec.tolerations查看(能容忍的污点effect) containers: - name: nginx image: nginx:1.15-alpine imagePullPolicy: IfNotPresent resources: # resources资源限制是为了防止master节点的资源被占太多(根据实际情况配置) limits: memory: 100Mi requests: memory: 100Mi
- apply 应用 YAML 文件
[root@k8smaster001 ~]# kubectl apply -f daemonset-nginx.yml daemonset.apps/daemonset-nginx created
- 验证
[root@k8smaster001 ~]# kubectl get daemonset NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset-nginx 2 2 1 2 1 <none> 23s
[root@k8smaster001 ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
daemonset-nginx-jl7lj 1/1 Running 0 90s 10.244.35.59 k8sworker002 <none> <none>
daemonset-nginx-n2mpr 1/1 Running 0 90s 10.244.87.228 k8sworker001 <none> <none>
k8s集群中每个 worker 节点都会运行一个pod