首页 > 其他分享 >在K8S中,DaemonSet类型的资源特性有哪些?

在K8S中,DaemonSet类型的资源特性有哪些?

时间:2024-10-09 13:33:40浏览次数:7  
标签:服务 哪些 集群 DaemonSet Pod K8S 节点 运行

在Kubernetes(K8s)中,DaemonSet是一种特殊的控制器资源对象,其核心特性和用途使得它非常适合用于在集群的每个节点上运行守护进程或服务。以下是DaemonSet类型的资源特性的详细阐述:

1. 确保每个节点上运行Pod副本
  • 节点级部署:DaemonSet确保集群中的每个节点(或满足特定条件的节点)上都运行一个Pod副本。这意味着无论何时创建或加入新的节点到集群中,DaemonSet都会自动为新节点调度和管理一个Pod。
  • 自动扩展:当节点加入或离开集群时,DaemonSet会自动添加或删除相应的Pod。如果一个节点被删除或者由于某种原因变得不可用,那么该节点上的DaemonSet Pod也会被清理;反之,如果有新节点加入,DaemonSet将确保在新节点上启动一个Pod实例。
2. 节点选择性部署
  • 节点选择器:通过使用NodeSelector、NodeAffinity或其他节点标签,用户可以精确地控制DaemonSet中的Pod部署在哪些节点上。例如,可以选择仅在具有特定硬件或功能的节点上运行DaemonSet。
3. 更新策略灵活
  • 滚动更新:DaemonSet支持滚动更新策略,允许在维护或升级守护进程时能够平滑过渡。通过更改Pod模板或镜像,可以逐步替换旧版本的Pod,从而确保服务的连续性和稳定性。
4. 系统服务和基础设施支持
  • 基础服务部署:DaemonSet通常用于部署那些提供集群层面功能的服务,如日志收集代理(如Fluentd或Filebeat)、监控代理(如Prometheus Node Exporter或cAdvisor)、网络插件以及其他需要在每个工作节点上都有一个实例运行的基础服务。
  • 系统守护进程:DaemonSet的主要作用是确保集群中的所有(或符合条件的部分)节点上都能按需运行指定的系统守护进程或其他基础组件,以提供集群范围内的基础设施支持。
5. 其他特性
  • 避免冲突:默认情况下,DaemonSet保证在每个节点上只运行一个Pod实例。这可以通过PodDisruptionBudget等机制来进一步强化,并且可以通过PodAntiAffinity规则来避免同一个节点上运行多个相同的DaemonSet Pod。
  • 版本控制:DaemonSet能够管理其Pod的生命周期,包括初始化容器、健康检查以及重启策略等,从而支持版本升级和回滚操作。

综上所述,DaemonSet在Kubernetes中扮演着确保集群每个节点上运行必要守护进程或服务的重要角色。其特性使得它成为部署和管理集群级别基础服务的理想选择,特别是在需要确保每个节点上都有特定任务或服务运行的情况下。

标签:服务,哪些,集群,DaemonSet,Pod,K8S,节点,运行
From: https://www.cnblogs.com/huangjiabobk/p/18454030

相关文章

  • 在K8S中,Deployment升级策略有哪些?
    在Kubernetes(K8s)中,Deployment的升级策略主要用于控制Pod副本的更新过程,以确保应用程序的平滑过渡和最小化的服务中断。以下是Kubernetes中Deployment升级策略的详细说明:1.滚动更新(RollingUpdate)概述:滚动更新是Deployment的默认升级策略。它通过逐步替换旧的Pod副本,以批次的......
  • 在K8S中,Pod常见调度方式有哪些?
    在Kubernetes(K8s)中,Pod的调度是一个关键过程,它决定了Pod在集群中的哪个节点上运行。K8s提供了多种调度方式,以满足不同应用的需求。以下是Pod常见的调度方式:1.默认调度(自由调度)功能:Kubernetes的默认调度器(kube-scheduler)会根据一系列内置的调度策略自动选择适合的节点。考虑因......
  • 在K8S中,Deployment 升级过程有哪些?
    在Kubernetes(K8s)中,Deployment的升级过程是一个受控且平滑的过程,用于将应用的新版本无缝地替换旧版本。以下是Deployment升级过程的详细步骤:1.更新Deployment配置准备新版本镜像或配置:确定新版本的应用程序镜像或需要更改的配置。更新Deployment的YAML配置文件,例如更改镜像......
  • 在K8S中,初始化容器(initcontainer)作用是什么?
    在Kubernetes(K8s)中,初始化容器(InitContainer)是一种特殊的容器,它在Pod的主容器启动之前运行,并执行一系列初始化任务。以下是关于初始化容器作用的详细解释:1.定义与特性定义:初始化容器是定义在Pod规格中的一个或多个容器,它们在Pod中的任何应用程序容器(即普通的容器)启动之前执行。......
  • 股市里有哪些事儿,是几乎每个人都要经历的?
    Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>初入股市:梦想与残酷现实的碰撞初入股市的美好憧憬初入股市的投资者,就像踏入了一个充满无限可能的新世界。股市在他们眼中,仿佛是一座取之......
  • 企业文件防止外发软件有哪些
    以下是一些常见的企业文件防止外发软件:数据加密软件:可以对文件进行加密,只有授权用户才能解密和访问文件。数据丢失防护软件:可以监控文件的复制、粘贴、移动等操作,并阻止未经授权的文件外发。信息安全管理软件:可以对企业文件进行分类、标记和控制访问权限,防止文件被非授......
  • Kubernetes(K8S)介绍
    官网:Kubernetes应用部署方式演变传统部署:互联网早期,会直接将应用程序部署在物理机上;优点:简单,不需要其他技术的参与。缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容器产生影响。虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独......
  • 性能测试的类型有哪些
    目录1.基准测试2.负载测试3.压力测试4.峰值测试5.并发测试6.容积测试7.稳定性测试8.可扩展性测试9.配置测试性能测试是为测量或评估被测软件系统与性能效率相关的特性而实施的一类测试,它关注被测系统在不同负载下的各种性能效率。软件系统的性能效率相关特性的覆盖......
  • k8s 修改 pod 时区
    将时区文件挂载到Pod中在定义pod上层控制器的时候,添加一个用于挂载时区的卷,挂载宿主机的时区文件...containers:-name:xxx...volumeMounts:-name:timezonemountPath:/etc/localtimevolumes:-name:timezonehostPath:......
  • java中对比两个对象哪些字段不同(反射获取对象的字段和value值)
    场景:当需要对比两个对象的哪些字段的value值不同时,使用原理:通过反射来获取对象中每个字段的value值,进行对比1.获取需要比对对象的Class对象 比对的是obpPurQualityCheckTaskItem和obpPurQualityTaskItemExportDto对象,但因为他们是两个不同的类,所以都需要获取2.获取需要比......