在kubernetes中,DaemonSet是一种控制器资源对象,主要特征包括:
1、每个节点运行一个实例:
- DaemonSet确保集群中的每个工作节点上都运行着一个指定的Pod副本。这意味着当DaemonSet被创建时,系统会自动调度Pod到左右符合条件的节点上,确保每个节点上仅有一个Pod实例
2、节点生命周期绑定:
- 当有新的节点加入到kubernetes集群时,DaemonSet控制器会自动为新节点创建相应的Pod
- 当节点从集群中移除或被标记为不可调度时,与之关联的Pod也会被删除或清理
3、节点选择性部署:
- 用户可以利用NodeSelector、NodeAffinity等机制来控制DaemonSet的Pod在哪些节点上运行,例如:只在具有指定标签的节点上启动Pod
4、更新策略灵活:
- DaemonSet支持多种更新策略,包括滚动更新、按需更新等,以确保在维护或升级守护进程时能够平滑过渡
5、系统服务和基础设施支持:
- DaemonSet通常用户部署那些需要再集群每个节点上提供基础服务或执行特定任务的应用程序,例如:网络插件代理、日志收集代理、监控探针等
综上所述:
kubernetes DaemonSet的核心功能:确保每个工作节点上都有一组特定的Pod始终运行,这对于管理和维护集群级别的系统服务至关重要