3. 升级窗口定义:窗口类型与参数体系

升级窗口是集群治理中控制变更风险的“时间阀门”。在租户隔离蓝图上线前,必须对窗口类型、参数约束和冷却机制进行标准化定义,以确保多租户集群的升级操作可预测、可审计、可回退。本节从窗口类型和窗口参数两个维度展开,并引入冷却期概念,形成完整的升级窗口防护模型。

3.1 窗口类型:三种模式覆盖全场景

根据变更紧急程度和影响范围,升级窗口分为三类:

窗口类型 适用场景 审批流程 典型持续时间 冷却期要求
固定窗口 计划内大版本升级、季度安全更新 提前 7 天审批,变更委员会评审 4–8 小时 ≥ 72 小时
滚动窗口 小版本补丁、热修复、配置变更 提前 24 小时审批,SRE 主管确认 1–4 小时 ≥ 24 小时
紧急窗口 安全漏洞 CVE、生产事故阻断 即时审批,值班经理 + 安全官双签 ≤ 1 小时 ≥ 12 小时(事后补录)
实践建议:固定窗口和滚动窗口应提前录入变更日历,与租户隔离策略联动——在窗口开启前自动冻结目标集群的租户资源迁移,避免升级过程中出现数据面不一致。

3.2 窗口参数:开始时间、持续时间与冷却期

每个升级窗口由三个核心参数定义,形成“何时开始、持续多久、多久后才能再升级”的完整约束链。

  • 开始时间(Start Time):窗口的精确启动时刻,采用 UTC 时间戳 + 时区偏移量记录。对于固定窗口和滚动窗口,开始时间必须落在业务低峰期(如凌晨 02:00–06:00);紧急窗口允许任意时刻触发,但需自动记录触发原因。
  • 持续时间(Duration):窗口从开始到强制关闭的最大时长。超过持续时间后,系统自动终止未完成的升级操作并触发回滚流程。持续时间应包含升级操作本身 + 预留的 15% 缓冲时间。
  • 冷却期(Cooldown Period):窗口关闭后到下一个窗口开启之间的最小间隔。冷却期内禁止对同一集群或同一租户组发起任何升级操作,用于观察升级后集群稳定性、收集监控指标并处理潜在副作用。
参数校验规则:冷却期 ≥ 持续时间 × 3(经验公式)。例如:固定窗口持续 6 小时,冷却期至少 18 小时;实际生产建议设为 72 小时以覆盖完整业务周期。

3.3 窗口生命周期与状态转换

下图展示了升级窗口从创建到关闭的完整状态机,以及冷却期在其中的位置:

升级窗口生命周期状态机 升级窗口生命周期状态机 已创建 待审批 已批准 执行中 已完成 冷却中 已关闭 已拒绝 冷却期关键规则: • 冷却期从“已完成”状态开始计时,期间禁止对同一集群发起新升级。 • 紧急窗口的冷却期可缩短至 12 小时,但需事后补录审批并附加事故报告。 • 冷却期内若检测到集群稳定性指标异常(如 API Server 错误率 > 1%),自动延长冷却期 24 小时。

3.4 窗口参数配置示例

以下 YAML 配置展示了固定窗口、滚动窗口和紧急窗口在 Kubernetes 自定义资源中的定义方式:

apiVersion: upgrade.cluster.io/v1
kind: UpgradeWindow
metadata:
  name: fixed-quarterly-v1.28
  namespace: cluster-gov
spec:
  windowType: Fixed
  startTime: "2025-04-15T02:00:00Z"
  duration: 6h
  cooldownPeriod: 72h
  affectedClusters:
    - prod-us-east-1
    - prod-eu-west-1
  approvalRequired: true
  approverGroup: "change-advisory-board"
---
apiVersion: upgrade.cluster.io/v1
kind: UpgradeWindow
metadata:
  name: rolling-hotfix-20250410
  namespace: cluster-gov
spec:
  windowType: Rolling
  startTime: "2025-04-10T03:00:00Z"
  duration: 2h
  cooldownPeriod: 24h
  affectedClusters:
    - staging-us-east-1
  approvalRequired: true
  approverGroup: "sre-oncall"
---
apiVersion: upgrade.cluster.io/v1
kind: UpgradeWindow
metadata:
  name: emergency-cve-2025-1234
  namespace: cluster-gov
spec:
  windowType: Emergency
  startTime: "2025-04-08T14:30:00Z"   # 即时触发
  duration: 45m
  cooldownPeriod: 12h
  affectedClusters:
    - prod-us-east-1
    - prod-eu-west-1
    - prod-ap-southeast-1
  approvalRequired: true
  approverGroup: "security-officer,sre-manager"
  incidentRef: "INC-20250408-001"
注意:紧急窗口的 startTime 应设置为实际触发时间,而非预填时间。冷却期 cooldownPeriod 在紧急场景下可缩短,但必须满足“事后补录 + 双签审批”的合规要求,否则视为违规变更。

3.5 窗口参数与租户隔离的联动策略

在租户隔离蓝图上线后,升级窗口参数需要与租户分组、资源配额、Pod 安全策略等隔离维度协同工作。下表总结了关键联动点:

窗口参数 租户隔离联动策略 防护验证要点
开始时间 窗口开启前 30 分钟自动冻结目标集群的租户资源迁移 验证冻结 API 是否生效,租户无法创建/删除 Pod
持续时间 持续时间过半时触发“租户影响评估”检查点 验证检查点是否记录当前租户的 Pod 中断数
冷却期 冷却期内禁止对同一租户组内的其他集群发起升级 验证冷却期锁是否跨集群生效

通过上述窗口类型定义、参数约束和冷却期机制,升级窗口从单一的时间段概念升级为多租户环境下的变更防护阀门,为后续的“窗口防护验证”章节奠定参数基础。