news 2026/5/25 16:43:09

K8S-daemonset控制器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8S-daemonset控制器

一、 DaemonSet 概述
DaemonSet 控制器能够确保 k8s 集群所有的节点都运行一个相同的 pod 副本,当向 k8s 集群中增加 node 节点时,这个 node 节点也会自动创建一个 pod 副本,当 node 节点从 集群移除,这些 pod 也会自动删除;删除 Daemonset 也会删除它们创建的 pod

DaemonSet 工作原理

daemonset 的控制器会监听 kuberntes 的 daemonset 对象、pod 对象、node 对象,这些被监听的对象之变动,就会触发 syncLoop 循环让 kubernetes 集群朝着 daemonset 对象描述的状态进行演进。

Daemonset 典型的应用场景

在集群的每个节点上运行存储,比如:glusterd 或 ceph。 在每个节点上运行日志收集组件,比如:flunentd 、 logstash、filebeat 等。 在每个节点上运行监控组件,比如:Prometheus、 Node Exporter 、collectd 等。

DaemonSet 与 Deployment 的区别

Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本。

DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本。

二、DaemonSet 资源清单文件编写技巧

[root@k8s-master01 ~]# kubectl explain ds
  • 字段作用
    apiVersion当前资源使用的 api 版本,跟 VERSION: apps/v1 保持 一致
    kind资源类型,跟 KIND: DaemonSet 保持一致
    metadata元数据,定义 DaemonSet 名字的
    spec定义容器的
    status状态信息,不能改
[root@k8s-master01 ~]# kubectl explain ds.spec

[root@k8s-master01 ~]# kubectl explain ds.spec.template

清单模版

apiVersion: apps/v1 kind: DaemonSet metadata: name: pod-controller # ds名称 labels: # 给ds打标签 controller: daemonset spec: revisionHistoryLimit: 3 # 保留历史版本数量,默认为10 updateStrategy: # Pod更新策略,默认是RollingUpdate type: RollingUpdate # 滚动更新策略。另一种是OnDelete,其没有子属性配置参数 rollingUpdate: # 当type为RollingUpdate的时候生效,为其配置参数 maxSurge: 25% # 升级过程中可以超过期望的Pod的最大数量,可以为百分比,也可以为整数。默认是25% maxUnavailable: 25% # 升级过程中最大不可用状态的Pod数量,可以为百分比,也可以为整数。默认是25% selector: # 选择器,通过该控制器管理哪些pod matchLabels: # Labels匹配规则。和matchExpressions类似 app: nginx-pod ###或者 matchExpressions: # Expressions匹配规则。和matchLabels类似 - {key: app, operator: 'In', values: ["nginx-pod"]} template: # pod副本创建模板。属性和Pod的属性一样 metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:latest ports: - name: nginx-port containerPort: 80 protocol: TCP

三、DaemonSet 使用案例

[root@k8s-master01 ~]# cat pod-controller.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: pod-controller labels: controller: daemonset spec: selector: matchLabels: app: nginx-pod template: metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:latest ports: - name: nginx-port containerPort: 80 protocol: TCP ##查看 [root@k8s-master01 ~]# kubectl apply -f pod-controller.yaml daemonset.apps/pod-controller created
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 4:54:34

K8S-Statefulset控制器

一、Statefulset控制器:概念、原理解读StatefulSet是为了管理有状态服务的问题而设计的。有状态服务StatefulSet是有状态的集合,管理有状态的服务,它所管理的Pod的名称不能随意变化。数据持久化的目录也是不一样,每一个Pod都有自己…

作者头像 李华
网站建设 2026/5/25 23:33:15

NetSonar网络诊断专家:3步搞定专业级网络性能监控

NetSonar网络诊断专家:3步搞定专业级网络性能监控 【免费下载链接】NetSonar Network pings and other utilities 项目地址: https://gitcode.com/gh_mirrors/ne/NetSonar 还在为网络连接不稳定而烦恼吗?🤔 NetSonar作为一款强大的跨平…

作者头像 李华
网站建设 2026/5/25 21:39:32

终极指南:Wan2GP视频生成模型快速入门教程

终极指南:Wan2GP视频生成模型快速入门教程 【免费下载链接】Wan2GP Wan 2.1 for the GPU Poor 项目地址: https://gitcode.com/gh_mirrors/wa/Wan2GP 想要体验专业级视频生成却担心硬件配置不足?Wan2GP正是为你量身打造的解决方案!这个…

作者头像 李华
网站建设 2026/5/26 4:56:20

掌握OctoSQL数据流分析:可视化查询执行全流程

掌握OctoSQL数据流分析:可视化查询执行全流程 【免费下载链接】octosql octosql:这是一个SQL查询引擎,它允许您对存储在多个SQL数据库、NoSQL数据库和各种格式的文件中的数据编写标准SQL查询,尝试将尽可能多的工作压缩到源数据库&…

作者头像 李华
网站建设 2026/5/26 2:42:02

提升Maya创作效率的实用插件盘点

在影视动画、游戏制作等视觉创作领域,Maya始终以其扎实的基础功能占据标杆地位,成为行业从业者的必备工具。面对日益复杂的项目需求和紧张的交付周期,仅依靠软件原生功能往往难以实现高效创作。适配性强的Maya插件就成了提升效率的关键助力—…

作者头像 李华
网站建设 2026/5/26 4:35:05

终极指南:5分钟快速上手ArcGIS API for Python地理空间分析

想要轻松处理地图数据、进行地理编码和空间分析吗?🚀 ArcGIS API for Python 是一个强大的地理空间数据处理库,专门为Python开发者设计。这个由Esri开发的库不仅支持深度学习、复杂的向量与栅格分析,还能与Jupyter Notebook完美配…

作者头像 李华