登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
VIP网盘
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
科技
›
k8s~控制deamonset中pod的数量
k8s~控制deamonset中pod的数量
[ 复制链接 ]
丘奕奕
2025-6-9 15:19:31
在Kubernetes中,DaemonSet是一种控制器,用于确保集群中的每个节点(或特定标签选择器匹配的节点)运行一个Pod的副本。由于DaemonSet的特性,它通常会在每个节点上运行一个Pod,但有时你可能需要对Pod的数量进行限制。以下是一些控制DaemonSet中Pod数量的方法:
1.使用节点选择器(Node Selector)
通过在DaemonSet的spec中设置nodeSelector,可以指定哪些节点上运行Pod。例如,如果你想在带有特定标签的节点上运行Pod,可以这样做:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: example-daemonset
spec:
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
nodeSelector:
key: value
containers:
- name: example-container
image: example-image
复制代码
在这个例子中,只有带有key=value标签的节点会运行Pod。
2.使用节点亲和性(Node Affinity)
节点亲和性提供了更细粒度的控制,可以使用nodeAffinity来指定Pod应该调度到哪些节点上。例如:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: example-daemonset
spec:
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: key
operator: In
values:
- value
containers:
- name: example-container
image: example-image
复制代码
在这个例子中,只有满足key In [value]条件的节点会运行Pod。
3.使用容忍度(Tolerations)
如果某些节点上有污点(Taints),可以通过设置容忍度(Tolerations)来允许Pod调度到这些节点上。例如:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: example-daemonset
spec:
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
tolerations:
- key: key
operator: Equal
value: value
effect: NoSchedule
containers:
- name: example-container
image: example-image
复制代码
在这个例子中,Pod会容忍带有key=value污点的节点。
4.更新策略(Update Strategy)
DaemonSet支持滚动更新,可以通过设置updateStrategy来控制更新过程中的Pod数量。例如:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: example-daemonset
spec:
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example-container
image: example-image
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 0
复制代码
在这个例子中,maxUnavailable设置为1,表示在更新过程中最多有一个Pod不可用;maxSurge设置为0,表示在更新过程中不会创建额外的Pod。
5.使用PodDisruptionBudget(PDB)
PodDisruptionBudget是一种资源对象,用于限制同时中断的Pod数量。虽然PDB主要用于处理节点维护时的Pod迁移,但也可以用于限制Pod的创建。例如:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: my-pdb
spec:
minAvailable: 1
selector:
matchLabels:
app: my-app
复制代码
在这个示例中,minAvailable: 1表示至少需要保证一个Pod处于可用状态,从而间接限制了同时创建的Pod数量。
6.使用LimitRange和ResourceQuota
LimitRange用于限制单个Pod的资源请求和限制,而ResourceQuota用于限制命名空间内的资源总量。例如:
apiVersion: v1
kind: LimitRange
metadata:
name: my-limit-range
spec:
limits:
- type: Container
max:
cpu: "2"
memory: 2Gi
min:
cpu: "100m"
memory: 200Mi
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: my-resource-quota
spec:
hard:
pods: "10"
cpu: "20"
memory: 20Gi
复制代码
在这个示例中,LimitRange限制了单个Pod的资源使用,而ResourceQuota限制了命名空间内总的Pod数量和资源使用量。
总结
通过以上方法,你可以灵活地控制DaemonSet中Pod的数量和调度策略。具体选择哪种方法取决于你的具体需求和集群的配置。以下是一些常见场景和推荐方法:
• 特定节点运行Pod:使用节点选择器(Node Selector)或节点亲和性(Node Affinity)。
• 容忍特定污点的节点:使用容忍度(Tolerations)。
• 控制更新过程中的Pod数量:使用更新策略(Update Strategy)。
• 限制同时中断的Pod数量:使用PodDisruptionBudget(PDB)。
• 限制命名空间内的资源使用:使用LimitRange和ResourceQuota。
希望这些方法能帮助你更好地管理和优化Kubernetes集群中的DaemonSet。如果有任何问题,可以参考Kubernetes的官方文档或联系技术支持获取进一步帮助。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
k8s
控制
deamonset
pod
数量
相关帖子
重剑无锋--从零开始建设k8s监控之总结(八)
重剑无锋--从零开始建设k8s监控之总结(八)
Mysql的索引数量是否越多越好?为什么?
k8s集群添加master节点报control plane 错误
ESP32-WIFI-WebUI控制LED
k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token
GitHub 上 Star 数量前 18 的开源 AI Agent 项目
【译】更好地控制您的 Copilot 代码建议
我一个写Java的,怎么就开始玩K8s和Jenkins了?!
k9s监控k8s集群工具
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
重剑无锋--从零开始建设k8s监控之总结(八)
0
992
电棘缣
2025-08-01
业界
重剑无锋--从零开始建设k8s监控之总结(八)
0
929
撒阗奕
2025-08-01
业界
Mysql的索引数量是否越多越好?为什么?
0
874
坐褐
2025-08-04
安全
k8s集群添加master节点报control plane 错误
0
946
墨佳美
2025-08-08
业界
ESP32-WIFI-WebUI控制LED
0
212
吟氅
2025-08-10
安全
k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token
0
381
锟及
2025-08-12
安全
GitHub 上 Star 数量前 18 的开源 AI Agent 项目
0
849
晚能
2025-08-15
安全
【译】更好地控制您的 Copilot 代码建议
0
310
呼延含玉
2025-09-02
业界
我一个写Java的,怎么就开始玩K8s和Jenkins了?!
0
578
役魅肋
2025-09-04
业界
k9s监控k8s集群工具
0
558
庞悦
2025-09-04
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
业界
签约作者
程序园优秀签约作者
发帖
丘奕奕
2025-6-9 15:19:31
关注
0
粉丝关注
11
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多