首页 > 其他分享 >k8s~控制deamonset中pod的数量

k8s~控制deamonset中pod的数量

时间:2025-01-15 09:06:59浏览次数:1  
标签:spec deamonset example DaemonSet image 节点 Pod k8s 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 的数量和调度策略。

标签:spec,deamonset,example,DaemonSet,image,节点,Pod,k8s,pod
From: https://www.cnblogs.com/lori/p/18672059

相关文章

  • 小众降维!POD-Transformer多变量回归预测(Matlab)
    目录效果一览基本介绍程序设计参考资料效果一览基本介绍1.Matlab实现POD-Transformer多变量回归预测,本征正交分解数据降维融合Transformer多变量回归预测,使用SVD进行POD分解(本征正交分解);2.运行环境Matlab2023b;3.输入多个特征,输出单个变量,多变量回归预测......
  • k8s OpenLocal存储
    参考项目https://github.com/alibaba/open-localv0.7.1NodeLocalStorage定义NodeLocalStoragecr表示每个k8s节点本地存储资源信息。controller创建后由节点上agent更新status,从而维护存储信息。apiVersion:csi.aliyun.com/v1alpha1kind:NodeLocalStoragespec:nodeName......
  • K8S之Pod进阶
    文章目录容器容器的状态pod实例配置镜像仓库拉镜像默认值特别说明容器重启策略Init容器Init容器优势Init容器实例特殊说明临时容器hook钩子函数容器探针何时该使用启动探针Pause(Infra)容器背景实现Pause容器的作用PodPreset如何工作容器容器的状态容器的状......
  • 20250114基础k8s部分
    20250114基础k8s部分No1.Kubernetes项目要解决的问题是什么?编排?调度?容器云?还是集群管理?对于大多数用户来说,他们希望Kubernetes项目带来的体验是确定的:现在我有了应用的容器镜像,请帮我在一个给定的集群上把这个应用运行起来。进一步地说,我还希望Kubernetes能给我提供路由网......
  • KuboardSpray v1.2.4 在 Rocky Linux 9.5 上部署 K8s 失败报错“当前资源包不支持此操
    KuboardSpray报错日志截图进入KuboardSpray的docker容器实例里的当前用户目录下,再用find.-name"*.yaml"|xargs-igrep-iHn"distribution:Rocky"{}查找声明RockyLinux系统版本的地方,如下图解决办法:只需对上图中红框处的3个配置文件进行修改,加上较新版本的Rock......
  • 欧拉OpenEuler基于Kubeasz部署k8s.250114
    欧拉OpenEuler基于Kubeasz部署k8s系统优化修改主机名hostnamectlset-hostnamePRD-MS-K8S01vim/etc/hosts172.62.17.101PRD-MS-K8S01172.62.17.102PRD-MS-K8S02172.62.17.103PRD-MS-K8S03关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭se......
  • EFK采集k8s日志
       在Kubernetes集群中,需要全面了解各个pod应用运行状态、故障排查和性能分析。但由于Pod是动态创建和销毁的,其日志分散且存储不持久,因此需要通过集中式日志采集方案,将日志收集到统一的平台并配置日志可视化分析和监控告警,以实现日志的可追溯性、实时监控和高效分析......
  • 使用 Podman Desktop 在 Windows 11 WSL2 环境中启动宿主机的 GPU 进行深度学习
    使用PodmanDesktop在Windows11WSL2环境中启动宿主机的GPU进行深度学习概述本文将指导您如何利用PodmanDesktop安装时提供的WSL2环境,来启动宿主机的GPU进行深度学习任务。前提条件确保您的Windows11已经启用了WSL2和虚拟化功能,并且安装了最新版本的NVIDI......
  • k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案
    前提:nvidia、cuda、nvidia-fabricmanager等相关的组件已经在宿主机正确安装,如果没有安装可以参考我之前发的文章GPUA800A100系列NVIDIA环境和PyTorch2.0基础环境配置【建议收藏】_a800多卡运行环境配置-CSDN博客文章浏览阅读1.1k次,点赞8次,收藏16次。Ant系列GPU支持NvLink&N......
  • k8s如何进行版本回滚
    在Kubernetes(k8s)中,版本回滚通常指的是将Deployment、DaemonSet或StatefulSet等资源回滚到之前的版本。Kubernetes通过记录资源的修订历史(revisionhistory)来支持回滚操作。以下是回滚操作的步骤:1.查看历史版本首先,你需要查看资源的修订历史,确定要回滚到的版本。kube......