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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在K8S中,DaemonSet类型的资源特性有哪些?

在Kubernetes(K8S)中,DaemonSet是一种控制器资源对象,它具有一系列独特的资源特性,这些特性使得DaemonSet特别适用于在集群的每个节点上运行守护进程或服务。以下是DaemonSet类型资源特性的详细阐述:

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

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
存储 Kubernetes 数据中心
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
|
2月前
|
Kubernetes 负载均衡 网络协议
在K8S中,Service的类型有哪几种,请说⼀下他们的用途?
在K8S中,Service的类型有哪几种,请说⼀下他们的用途?
|
2月前
|
边缘计算 人工智能 Kubernetes
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
14 1
|
2月前
|
存储 Kubernetes API
|
2月前
|
Kubernetes Linux 调度
在k8S中,Pod如何实现对节点的资源控制?
在k8S中,Pod如何实现对节点的资源控制?
|
2月前
|
Kubernetes 监控 API
在K8S中,RS资源如何实现升级和回滚?
在K8S中,RS资源如何实现升级和回滚?
|
2月前
|
Kubernetes 网络协议 应用服务中间件
在K8S中,SVC资源是否支持在K8S集群外部访问?
在K8S中,SVC资源是否支持在K8S集群外部访问?
|
2月前
|
Kubernetes Cloud Native 应用服务中间件
Kubernetes 自动伸缩策略:优化资源利用率
【8月更文第29天】在现代云原生环境中,应用的流量往往具有不可预测性。为了应对这种变化,Kubernetes 提供了多种自动伸缩机制来动态调整应用实例的数量和每个实例分配的资源。本文将深入探讨两种主要的自动伸缩工具:水平 Pod 自动伸缩器 (HPA) 和垂直 Pod 伸缩器 (VPA),并提供实际的应用示例。
58 0
|
2月前
|
Kubernetes 负载均衡 网络协议
在K8S中,Service的类型有哪些?
在K8S中,Service的类型有哪些?
|
2月前
|
Kubernetes 负载均衡 网络协议
在K8S中,DNS组件有什么特性?
在K8S中,DNS组件有什么特性?
下一篇
无影云桌面