DaemontSet

DaemontSet

DaemonSet

1.用于在集群中的每个node上运行一个Pod实例
2.在daemonset的生命周期内,当有node加入/移除集群时,会自动为node添加/回收Pod
3.删除daemonSet将会删除它创建的所有Pod

提示

kube-proxy就是以daemonset的形式运行在每个节点上的
daemonset不支持用kubectl create daemonset的方式创建。可以创建deployment后再更改

daemonset的应用、使用场景

* 在每个Node上都运行一个存储进程,例如Ceph
* 在每个Node上都运行一个日志采集进程,例如Logstach
* 在每个Node上都运行一个性能监控进程,采集该Node的运行性能数据,例如Prometheus Node Exporter
* 可以将pod上的相同服务提取成为一个daemonset,在不同容器中运行

daemonset的调度策略

1.DaemonSet 使用系统内置的算法在每个Node上进行调度(默认方式)
2.也可以在Pod的定义中使用NodeSelector或NodeAffinity来指定满足条件的Node范围进行调度

daemonset的更新策略

RollingUpdate和OnDelete
    * RollingUpdate:即更新一个DaemonSet模板的时候,旧的Pod副本会被自动删除,同时新的Pod副本会被自动创建。
    * OnDelete:即只有手工删除了DaemonSet创建的Pod副本,新的Pod副本才会被创建出来。
    * 如果不设置updateStrategy的值,默认为RollingUpdate。

创建daemonset

vim daemon.yaml

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: daemonset
  labels:
    app: daemonset
spec:
  updateStrategy:        #进行滚动升级
    type: RollingUpdate
  selector:
    matchLabels:
      name: daemonset
  template:
    metadata:
      labels:
        name: daemonset
    spec:
      containers:
      - name: nginx
        image: nginx

daemonset的更新策略

1.OnDelete: 当使用OnDelete作为升级策略时, 在创建好新的DaemonSet配置之后, 新的Pod并不会被自动创建, 直到用户手动删除旧版本的Pod,才触发新建操作。
2.RollingUpdate:默认升级策略。当使用RollingUpdate作为升级策略对DaemonSet进行更新时, 旧版本的Pod将被自动杀掉, 然后自动创建新版本的DaemonSet Pod。更新期间,最多只能有 DaemonSet 的一个 Pod 运行于每个节点上
posted @   立勋  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示