一, DaemonSet 作用
Relicationcontroller 和 ReplicaSet 都用于在 Kubernetes 集群上运行部署特定数量的 pod. 但是, 当你希望 pod 在集群中的每个节点上运行时, 就可使用 DaemonSet.
- apiVersion: apps/v1beta2
- kind: DaemonSet
- metadata:
- name: ssd-monitor
- namespace: test
- spec:
- selector:
- matchLabels:
- App: ssd-monitor
- template:
- metadata:
- labels:
- App: ssd-monitor
- spec:
- nodeSelector: #指定节点标签 disk 带有 ssd 的主机上运行
- disk: ssd #如没有 nodeSelector, 即会在所有节点上运行一个 POD
- containers:
- - name: main
- image: luksa/ssd-monitor
- [[email protected] k8s-YAML-file]# kubectl get nodes -l disk=ssd
- # 查看带有 disk=ssd 的标签
- NAME STATUS ROLES AGE VERSION
- test-nodes1.cedarhd.com Ready master,node 66d v1.15.2
- test-nodes2.cedarhd.com Ready master,node 66d v1.15.2
- [[email protected] k8s-YAML-file]# kubectl label node test-nodes1.cedarhd.com disk=hhd --overwrite
- # 修改其中一个节点的标签不带 disk=ssd
- node/test-nodes1.cedarhd.com labeled
- [[email protected] k8s-YAML-file]# kubectl get nodes -l disk=ssd
- NAME STATUS ROLES AGE VERSION
- test-nodes2.cedarhd.com Ready master,node 66d v1.15.2
- [[email protected] k8s-YAML-file]# kubectl create -f kubia-daemonset.YAML
- # 创建 DaemonSet
- daemonset.apps/ssd-monitor created
- [[email protected] k8s-YAML-file]# kubectl get pod -o wide -n test
- NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
- ssd-monitor-q7kbz 1/1 Running 0 16s 172.7.22.6 test-nodes2.cedarhd.com <none> <none>
- [[email protected] k8s-YAML-file]# kubectl get ds -n test
- # 查看 DaemonSet
- NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
- ssd-monitor 1 1 1 1 1 disk=ssd 5m7s
来源: http://www.bubuko.com/infodetail-3498888.html