K8S 之使用DaemonSet在每个节点上运行一个POD

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S 之使用DaemonSet在每个节点上运行一个POD相关的知识,希望对你有一定的参考价值。

一、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
[root@test-nodes1 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
[root@test-nodes1 k8s-yaml-file]# kubectl label node test-nodes1.cedarhd.com disk=hhd --overwrite   
#修改其中一个节点的标签不带disk=ssd
node/test-nodes1.cedarhd.com labeled
[root@test-nodes1 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
[root@test-nodes1 k8s-yaml-file]# kubectl create -f kubia-daemonset.yaml    
#创建DaemonSet
daemonset.apps/ssd-monitor created
[root@test-nodes1 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>
[root@test-nodes1 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

以上是关于K8S 之使用DaemonSet在每个节点上运行一个POD的主要内容,如果未能解决你的问题,请参考以下文章

K8S 之概念DaemonSet 对象

深入玩转K8S之最懂实际应用场景的调度神器DaemonSet

k8s- 使用DaemonSet时,主节点没有运行Pod实例

[K8s]Kubernetes-工作负载(下)

k8s 安装node_exporter

k8s pod控制器详解(DaemonSetJobCronJob)