登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
K8s新手系列之DaemonSet资源
K8s新手系列之DaemonSet资源
[ 复制链接 ]
静轾
2025-6-3 00:18:56
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
概述
官网文档:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/daemonset/
DaemonSet简称ds
DaemonSet
在不考虑污点的情况下会确保全部(或者某些)节点上运行一个 Pod 的副本
。 当有节点加入集群时, 也会为他们新增一个 Pod 。 当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。
使用场景:
在每个节点上运行集群守护进程
比如:kube-proxy
在每个节点上运行日志收集守护进程
比如:filebeat
在每个节点上运行监控守护进程
比如:zabbix-agent2
资源清单文件详解
apiVersion: apps/v1 # API 版本,当前稳定版本为 apps/v1
kind: DaemonSet # 资源类型为 DaemonSet
metadata:
name: example-daemonset # DaemonSet 名称,需在命名空间内唯一
namespace: default # 所属命名空间,默认值为 default
labels: # 标签,用于关联 Pod/Selector 等
app: monitoring
spec:
selector: # 标签选择器,用于匹配受控的 Pod
matchLabels:
app: monitoring
template: # Pod 模板,定义 Pod 的具体配置
metadata:
labels:
app: monitoring # 需与 selector.matchLabels 一致
spec:
containers:
- name: agent # 容器名称
image: agent:v1 # 镜像地址
resources: # 资源限制(可选)
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 200m
memory: 200Mi
nodeSelector: # 节点选择器(可选),指定 Pod 调度到符合条件的节点
disk: ssd
tolerations: # 污点容忍(可选),允许 Pod 调度到带有特定污点的节点
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
updateStrategy: # 更新策略(可选,默认 RollingUpdate)
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1 # 滚动更新时允许的最大不可用 Pod 数
minReadySeconds: 30 # 等待 Pod 就绪的最短时间(可选)
复制代码
DaemonSet实战
# 定义资源清单文件
[root@master01 ~/daemonset]# cat daemonset-nginx.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-daemonset
namespace: default
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
hostPort: 30280
# 创建daemonset资源
[root@master01 ~/daemonset]# kubectl apply -f daemonset-nginx.yaml
daemonset.apps/nginx-daemonset created
复制代码
查看daemonset资源
# 查看daemonset资源
[root@master01 ~/daemonset]# kubectl get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
nginx-daemonset 2 2 0 2 0 <none> 5s
# 查看pod,发现调度到node01和node02节点上
[root@master01 ~/daemonset]# kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-daemonset-bwgdw 1/1 Running 0 115s 100.95.185.254 node02 <none> <none>
nginx-daemonset-dtpw2 1/1 Running 0 115s 100.117.144.153 node01 <none> <none>
复制代码
为什么master节点上没有调度?
因为master节点上默认存在一个污点,而上面的案例中没有配置污点容忍,所以没有调度过去
# 查看污点
[root@master01 ~/daemonset]# kubectl describe node master01 | grep -i taint
Taints: node-role.kubernetes.io/control-plane:NoSchedule
复制代码
如果需要调度到master节点,需要做污点容忍。
关于污点和污点容忍学习可以阅读这篇文章:K8s中的污点和容忍
示例:
[root@master01 ~/daemonset]# cat daemonset-nginx.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-daemonset
namespace: default
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
# 污点容忍
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
containers:
- name: nginx
image: nginx:1.25.3
ports:
- containerPort: 80
hostPort: 30280
# 创建daemonset资源
[root@master01 ~/daemonset]# kubectl apply -f daemonset-nginx.yaml
daemonset.apps/nginx-daemonset configured
复制代码
查看一下
[root@master01 ~/daemonset]# kubectl get ds
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
nginx-daemonset 3 3 2 1 2 <none> 9m58s
# 查看pod,发现master节点也已经调度上了
[root@master01 ~/daemonset]# kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-daemonset-2pzdk 1/1 Running 0 102s 100.85.170.132 master01 <none> <none>
nginx-daemonset-dtpw2 1/1 Running 0 11m 100.117.144.153 node01 <none> <none>
nginx-daemonset-fr4dr 0/1 ContainerCreating 0 88s <none> node02 <none> <none>
复制代码
daemonset资源的管理
查看DaemonSet
语法:
kubectl get daemonset <daemonset-name>
复制代码
删除DaemonSet
kubectl delete daemonset <daemonset-name>
复制代码
更新DaemonSet
Damonset资源的更新、回滚策略和Deployment是一样的,可以参考这篇文章:K8s进阶之Deployment的更新&回滚
1、使用kubectl edit命令更新
2、使用对应的资源清单文件进行更新
3、快速更新镜像:
# 语法
kubectl set image daemonset <daemonset资源> <pod-名称>=<镜像>:<镜像tag>
# 示例
kubectl set image daemonset/example-daemonset agent=agent:v2
复制代码
4、快速回滚到上一个版本:
kubectl rollout undo daemonset/example-daemonset
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
K8s
新手
系列
DaemonSet
资源
相关帖子
C#AI系列(5): 从零开始 C# 轻松语音识别
langchain4j 学习系列(7)-文本分类
云电脑系列18:旧电脑别扔:连云电脑,老旧设备也能拥有高性能
K8S 中使用 YAML 安装 ECK
C#AI系列(5): C#离线实现高效OCR
推荐一种并发线程中资源同步常用方法
解密Prompt系列66. 视觉Token爆炸→DeepSeek-OCR光学压缩
资源总是不够用?这次,我用一套系统盘活了整个团队
C#AI系列(7):从零开始LLM之Tokenizer实现
C#AI系列(7):从零开始LLM之Tokenizer实现
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
C#AI系列(5): 从零开始 C# 轻松语音识别
0
109
梦霉
2025-12-07
安全
langchain4j 学习系列(7)-文本分类
0
761
胥望雅
2025-12-09
安全
云电脑系列18:旧电脑别扔:连云电脑,老旧设备也能拥有高性能
2
300
虾氲叱
2025-12-10
业界
K8S 中使用 YAML 安装 ECK
0
763
全跺俚
2025-12-12
业界
C#AI系列(5): C#离线实现高效OCR
1
702
郏琼芳
2025-12-13
安全
推荐一种并发线程中资源同步常用方法
0
546
汝雨竹
2025-12-15
业界
解密Prompt系列66. 视觉Token爆炸→DeepSeek-OCR光学压缩
0
428
筒霓暄
2025-12-15
业界
资源总是不够用?这次,我用一套系统盘活了整个团队
0
689
蛟当罟
2025-12-16
业界
C#AI系列(7):从零开始LLM之Tokenizer实现
0
272
郜庄静
2025-12-21
业界
C#AI系列(7):从零开始LLM之Tokenizer实现
0
287
卜笑
2025-12-21
回复
(2)
撙仿
2025-11-8 07:46:12
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
这个有用。
幌斛者
2025-11-21 03:43:54
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
静轾
2025-11-21 03:43:54
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9949
查看更多
今日好文热榜
503
第40次CCFCSP认证邮寄
863
第40次CCFCSP认证邮寄
849
第40次CCFCSP认证邮寄
436
用 .NET MAUI 10 + VS Copilot 从 0 开发一
866
【节点】[GammaToLinearSpaceExact节点]原
375
[20251218]测试sql语句子光标的执行性能(21
491
HECTF2025
15
《C语言程序设计》琐碎知识点总结笔记
378
NGD-SLAM(三)
46
AI 领域职业发展分享总结(吴恩达新课内容
103
【面试题】数据库事务隔离与传播属性是什么
189
2025年儿童羽绒服十大名牌排名:宝妈选购指
312
2025年儿童羽绒服十大名牌排名:宝妈选购指
761
Flink源码阅读:如何生成ExecutionGraph
420
Github项目CI&CD部署
314
AgentScope深入分析-LLM&MCP
600
《痞子衡嵌入式半月刊》 第 120 期
626
go项目使用go build 与 MakeFile 构建项目
765
监控指标与容量预警——延迟、命中率、慢查
673
2026 年别墅防水服务商 TOP5 推荐:高端住