创建 DaemonSets

守护进程集(DaemonSet) 是一种 Kubernetes 控制器对象,它确保所有(或某个子集)集群节点都运行指定 Pod 的一个副本。与 Deployments 不同,守护进程集是以节点为中心,而非以应用为中心,非常适合支持集群范围的基础设施服务。

WARNING

守护进程集操作说明

  1. 行为特征

    • Pod 分布

      • 在每个可调度节点上部署正好 一个 Pod 副本,满足以下条件:
        • nodeSelector 标准
        • 并非处于 NotReady 状态
        • NoSchedule/NoExecute 污点(除非已配置容忍)
      • Pod 计数公式
        Pod 数 = 符合条件的节点数
    • 双角色节点处理

      • 同时作为控制平面和工作节点的节点仅会运行 一个 Pod 实例,与角色标签无关。
  2. 关键约束:❌ 排除的节点

    • 带有 Unschedulable: true 标志的节点
    • 状态为 NotReady 的节点
    • 具有不兼容污点且未匹配的容忍的节点

前提条件

获取镜像地址。镜像的来源可以是平台管理员通过工具链集成的镜像仓库,或来自第三方平台的镜像仓库。

  • 对于前者,管理员通常会将镜像仓库分配给您的项目,您可以使用其中的镜像。如果未找到所需的镜像仓库,请联系管理员进行分配。

  • 如果是第三方平台的镜像仓库,请确保在当前集群中能够直接从中拉取镜像。

操作步骤

  1. 在容器平台中,导航至 工作负载 > 守护进程集 在左侧边栏。

  2. 单击 创建守护进程集

  3. 选择输入 镜像,然后单击 确认

INFO

注意:当使用来自集成到网页控制台的镜像仓库中的镜像时,可以通过 已集成 来筛选镜像。 集成项目名称,例如,镜像 (docker-registry-projectname),其中包含在该网页控制台中的项目名称 projectname 和镜像仓库中的项目名称 containers。

配置基本信息

基本信息 部分,配置部署工作负载的声明性参数:

参数说明
更多 > 更新策略配置 rollingUpdate 策略以实现零停机时间的部署:
最大突增 (maxSurge):
  • 更新期间可以超过预期副本数量的 Pod 最大数。
  • 接受绝对值(例如,2)或百分比(例如,20%)。
  • 百分比计算: ceil(current_replicas × percentage)
  • 示例:从 10 个副本计算,4.1 → 5
最大不可用 (maxUnavailable):
  • 更新期间可以临时不可用的 Pod 最大数。
  • 百分比值不能超过 100%
  • 百分比计算: floor(current_replicas × percentage)
  • 示例:从 10 个副本计算,4.9 → 4
注意
1. 默认值:如果未明确设置,则 maxSurge=1maxUnavailable=1
2. 未运行的 Pods(例如,在 Pending/CrashLoopBackOff 状态下)被视为不可用。
3. 同时约束
  • maxSurgemaxUnavailable 不能同时为 00%
  • 如果百分比值对两个参数都计算为 0,Kubernetes 会强制 maxUnavailable=1 以确保更新进展。
示例
对于一个有 10 个副本的 Deployment:
  • maxSurge=2 → 更新期间的总 Pods: 10 + 2 = 12
  • maxUnavailable=3 → 最少可用 Pods: 10 - 3 = 7
  • 这确保了可用性,同时允许受控推出。

配置 Pods

Pod 部分,请参考 创建部署 - 配置 Pods

配置容器

容器 部分,请参考 创建部署 - 配置容器

创建

单击 创建。 在单击 创建 之后,守护进程集将:

✅ 自动部署 Pod 副本到所有 符合条件的节点,满足以下条件:

  • nodeSelector 标准(如果定义)
  • tolerations 配置
  • 节点状态为 ReadySchedulable: true

排除节点

  • 带有 NoSchedule 污点的节点(除非被容忍)
  • 手动标记的节点 (kubectl cordon)
  • 状态为 NotReady/Unschedulable 的节点