守护进程集(DaemonSet) 是一种 Kubernetes 控制器对象,它确保所有(或某个子集)集群节点都运行指定 Pod 的一个副本。与 Deployments 不同,守护进程集是以节点为中心,而非以应用为中心,非常适合支持集群范围的基础设施服务。
守护进程集操作说明
行为特征
Pod 分布
nodeSelector
标准NotReady
状态NoSchedule
/NoExecute
污点(除非已配置容忍)Pod 数 = 符合条件的节点数
双角色节点处理
关键约束:❌ 排除的节点
Unschedulable: true
标志的节点NotReady
的节点获取镜像地址。镜像的来源可以是平台管理员通过工具链集成的镜像仓库,或来自第三方平台的镜像仓库。
对于前者,管理员通常会将镜像仓库分配给您的项目,您可以使用其中的镜像。如果未找到所需的镜像仓库,请联系管理员进行分配。
如果是第三方平台的镜像仓库,请确保在当前集群中能够直接从中拉取镜像。
在容器平台中,导航至 工作负载 > 守护进程集 在左侧边栏。
单击 创建守护进程集。
选择 或 输入 镜像,然后单击 确认。
注意:当使用来自集成到网页控制台的镜像仓库中的镜像时,可以通过 已集成 来筛选镜像。 集成项目名称,例如,镜像 (docker-registry-projectname),其中包含在该网页控制台中的项目名称 projectname 和镜像仓库中的项目名称 containers。
在 基本信息 部分,配置部署工作负载的声明性参数:
参数 | 说明 |
---|---|
更多 > 更新策略 | 配置 rollingUpdate 策略以实现零停机时间的部署: 最大突增 ( maxSurge ):
maxUnavailable ):
1. 默认值:如果未明确设置,则 maxSurge=1 ,maxUnavailable=1 。 2. 未运行的 Pods(例如,在 Pending /CrashLoopBackOff 状态下)被视为不可用。 3. 同时约束:
对于一个有 10 个副本的 Deployment:
|
在 Pod 部分,请参考 创建部署 - 配置 Pods
在 容器 部分,请参考 创建部署 - 配置容器
单击 创建。 在单击 创建 之后,守护进程集将:
✅ 自动部署 Pod 副本到所有 符合条件的节点,满足以下条件:
nodeSelector
标准(如果定义)tolerations
配置Ready
且 Schedulable: true
❌ 排除节点:
NoSchedule
污点的节点(除非被容忍)kubectl cordon
)NotReady
/Unschedulable
的节点