k8s控制deamonset中pod数量的方法

 更新时间:2025年01月15日 08:59:31   作者:张占岭  
DaemonSet是Kubernetes中用于确保每个节点运行一个Pod副本的控制器,常用于运行集群守护进程,通过节点选择器、节点亲和性、容忍度和更新策略,可以精确控制Pod的数量和调度,本文介绍k8s控制deamonset中pod数量的方法,感兴趣的朋友一起看看吧

DaemonSet 是 Kubernetes 中的一种控制器,用于确保集群中的每个节点(或特定标签选择器匹配的节点)运行一个 Pod 的副本。DaemonSet 通常用于运行集群守护进程,如日志收集、监控代理、存储卷插件等。以下是如何控制 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。
通过以上方法,你可以灵活地控制 DaemonSet 中 Pod 的数量和调度策略。

到此这篇关于k8s控制deamonset中pod数量的方法的文章就介绍到这了,更多相关k8s deamonset中pod数量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • K8s环境内部的服务如何注册到外部

    K8s环境内部的服务如何注册到外部

    文章主要讨论了在K8s环境外部部署服务时如何与部署在K8s内部的服务进行服务注册,提出了使用LoadBalancer、Kong和NodePort三种方式,并详细介绍了每种方式的实现步骤和注意事项
    2026-02-02
  • 2022最新青龙面板对接机器人的详细过程(傻妞对接onebot(oicq)协议实现机器人功能)

    2022最新青龙面板对接机器人的详细过程(傻妞对接onebot(oicq)协议实现机器人功能)

    这篇文章主要介绍了2022最新青龙面板对接机器人的详细过程(傻妞对接onebot(oicq)协议实现机器人功能),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 使用kubeadm部署kubernetes1.27.1版本教程

    使用kubeadm部署kubernetes1.27.1版本教程

    文章概述了K8s集群搭建的准备与两种部署方式:kubeadm(快速)和二进制(手动),涵盖单master配置、硬件要求、网络设置及初始化流程,适用于测试环境,提供参考经验
    2025-08-08
  • Kubernetes中Pod容器的资源限制和探针配置方式

    Kubernetes中Pod容器的资源限制和探针配置方式

    这篇文章主要介绍了Kubernetes中Pod容器的资源限制和探针配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • 带你学会k8s 更高级的对象Deployment

    带你学会k8s 更高级的对象Deployment

    这篇文章主要为大家介绍了k8s还有更高级的"对象"Deployment使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • K8S中五种控制器的介绍以及使用

    K8S中五种控制器的介绍以及使用

    这篇文章主要给大家介绍了关于K8S中五种控制器及使用的相关资料,控制器 又称之为工作负载,本文通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • K8s集群(kubeadm)CA证书过期的解决过程

    K8s集群(kubeadm)CA证书过期的解决过程

    在K8s集群中,CA证书和Token都会过期,导致新节点无法加入集群,需要备份旧证书,重新生成新证书和配置文件,更新kubectl配置,重启kubelet,重新加入工作节点,验证集群节点状态和健康状况,确保K8s集群正常运行
    2026-01-01
  • 自定义资源CRD使用介绍

    自定义资源CRD使用介绍

    这篇文章主要为大家介绍了自定义资源CRD的使用示例介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • k8s安装CICD devtron过程详解

    k8s安装CICD devtron过程详解

    这篇文章主要为大家介绍了k8s安装CICD devtron过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Kubernetes 权限管理认证鉴权详解

    Kubernetes 权限管理认证鉴权详解

    这篇文章主要为大家介绍了Kubernetes 权限管理认证鉴权详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论