全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

KCI 任务类 Pod 延迟销毁策略配置指南

最近更新时间:2026-05-28 16:37:25

概述

对于运行一次性任务(如 Job、CronJob 或短作业)的 KCI Pod,当其生命周期进入终态(PodSucceeded 或 PodFailed)后,默认情况下底层的计算资源(虚拟机实例)会立即被释放销毁。为了给运维排查、日志留存或核心产物导出预留充足的时间,KCI 提供了如下两个 Annotation参数,用于精确控制在何种退出状态下,延迟销毁底层的虚拟机资源。

注解键 (Annotation Key)

类型

详细描述

默认值

k8s.ksyun.com/kci-finish-waiting-policy

String

延迟销毁的触发策略。

• Always: 无论 Pod 成功还是失败,均触发延迟销毁。

• OnFailure: 仅在 Pod 运行失败(v1.PodFailed)时触发延迟销毁。

• Never: 不延迟,Pod 运行结束立即销毁底层 VM。

Never

k8s.ksyun.com/kci-finish-waiting-seconds

String

延迟销毁的等待时长,单位:秒。

必须配合同名策略参数使用,当满足策略条件时,底层 VM 将在指定秒数后执行释放。

"0"

当两个参数组合配置为 OnFailure 且时间为 N 秒时,KCI 底层控制面的具体行为逻辑如下:

场景一:Pod 运行成功 (status.phase == Succeeded)

  • 底层行为:由于配置的是 OnFailure(仅失败时等待),KCI 控制面判定不满足延迟条件。

  • 结果:底层资源将被立即删除,避免产生不必要的额外按量计费。

场景二:Pod 运行失败 (status.phase == Failed)

  • 底层行为:Pod 进程因非 0 状态码退出、OOMKilled 或被驱逐导致进入 Failed 状态。

  • 结果:在 N 秒的窗口期内,底层资源依然保持存在且维持当前状态。超时之后,KCI 控制面才会最终发起底层资源销毁动作,期间可以执行logs操作。

应用场景

自动化故障现场排查 (推荐配置 OnFailure)

在批处理、AI 训练或 CI/CD 构建任务中,如果任务成功,我们希望资源立刻释放以节省成本;但如果任务发生异常崩溃,需要查看日志。

YAML 配置示例:

apiVersion: batch/v1
kind: Job
metadata:
  name: rbkci-job
  namespace: default
  labels:
    app: sandbox
spec:
  backoffLimit: 0
  template:
    metadata:
      annotations:
        k8s.ksyun.com/kci-finish-waiting-policy: "OnFailure"
        k8s.ksyun.com/kci-finish-waiting-seconds: "300"
      labels:
        app: sandbox
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: type
                operator: In
                values:
                - virtual-kubelet
      containers:
      - name: sandbox
        image: hub.kce.ksyun.com/ksyun/busybox:1.33.1
        command: ["sh", "-c"]
        args:
        - |
          echo "===> 容器启动成功,等待 10 秒后模拟异常..."
          sleep 10
          echo "❌ 触发模拟致命错误,退出!"
          exit 1
      restartPolicy: Never
      tolerations:
      - key: rbkci-virtual-kubelet.io/provider
        value: kingsoftcloud
        effect: NoSchedule

在延迟等待的 N 秒期间,由于底层实例和云盘资源依然被占用,在此期间可能会持续产生少量的按量计费(取决于底层套餐策略),建议不要将 N 设得过大。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈