DaemonSet服务守护进程的使用场景

目录

  • DaemonSet又是什么?
  • DaemonSet 的使用场景:
  • DaemonSet的使用:

DaemonSet又是什么? DaemonSet是守护进程集,简写为ds;是在所有的节点或者匹配的节点上都部署一个Pod。
[root@k8s-master01 ~]# kubectl get nodesNAMESTATUSROLESAGEVERSIONk8s-master01Ready8dv1.23.3k8s-master02Ready8dv1.23.3k8s-master03Ready8dv1.23.3k8s-node01Ready8dv1.23.3k8s-node02Ready8dv1.23.3

比如从上段代码中可以看到我们集群有五个节点,Daemon会在这五个节点都部署一个Pod;又或者我们只需要在node节点部署,那么可以利用标签的方式只在node节点上部署Pod。比如我们的calico网络插件就是用DaemonSet部署的。

DaemonSet 的使用场景:
  • 监控数据收集:需要每个节点上收集数据
  • 监控节点状态
  • 负责每个节点的网络、存储等组件,如calico、ceph等

DaemonSet的使用:
apiVersion: apps/v1kind: DaemonSetmetadata:labels:app: nginxname: nginxspec:revisionHistoryLimit: 10selector:matchLabels:app: nginxtemplate:metadata:creationTimestamp: nulllabels:app: nginxspec:containers:- name: nginximage: nginx:1.18.0imagePullPolicy: Alwaysresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30

注意:没有副本数的参数
创建一个ds;然后查看可以看到每个节点上都生成了一个nginx副本。
[root@k8s-master01 ~]# kubectl create -f nginx-ds.yaml daemonset.apps/nginx created[root@k8s-master01 ~]# kubectl get pod -o wide NAMEREADYSTATUSRESTARTSAGEIPNODENOMINATED NODEREADINESS GATESbusybox1/1Running21 (2m45s ago)8d172.27.14.193k8s-node02nginx-2c7xf1/1Running02m2s172.25.92.79k8s-master02nginx-kjdx81/1Running02m2s172.25.244.200k8s-master01nginx-wwltz1/1Running02m2s172.27.14.199k8s-node02nginx-zl2lr1/1Running02m2s172.18.195.19k8s-master03nginx-znprg1/1Running02m2s172.17.125.7k8s-node01

需要注意的地方:
  • restartPolicy字段默认是Always
  • Daemon Set没有副本数
  • 最大失败数需要写数字,建议1
  • 更新策略建议使用OnDelete,保留历史版本为1
其他地方与Deployment和StatefulSet类似,就不说了,可以看我另外两篇!
【DaemonSet服务守护进程的使用场景】以上就是DaemonSet服务守护进程的使用场景的详细内容,更多关于DaemonSet服务守护进程的资料请关注脚本之家其它相关文章!

    推荐阅读