平台 Operator 通过 Kubernetes 自定义资源
Application 生成 Deployment 与 Service。当
Application 的 image、replicas 或 port 发生变更时,Operator 会在同一 reconciliation 循环中重新计算并更新对应的 Deployment 与 Service,而不会删除后重建。核心流程
-Application变更 → 触发 controller
- Controller 读取Application.spec,重新生成 Deployment 与 Service 的期望状态
- 若实际资源与期望不同,执行更新操作;若相同,保持不变
验证结果
- Deployment 的replicas、image与containerPort均按最新 spec 更新
- Service 的port与targetPort同步更新
- Deployment 与 Service 的 UID 与 ClusterIP 均保持不变,证明是原资源更新
-Application.status.observedGeneration与metadata.generation对齐,表明更新已被处理
测试覆盖
- 创建 Application → 验证 Deployment 与 Service
- 捕获 UID → 更新 Application → 再次验证 UID 与 ClusterIP 未变
- 等待generation == observedGeneration确认 reconciliation 完成
此改进使得平台的 API 具备完整的 desired‑state 语义,后续将继续完善 Application 的 ready 状态判定。