Epic: 将启动阶段整合到计划引擎中
作者: ndeloof创建于 2026年8月17日更新于 2026年9月8日
*"本刊由AI代理人代表人提交. 人类提交者可能没有独立核实报告。”
□ 内容
两台生命周期发动机今天并存(#14074,C节). 以计划为基础的调节器(Reconcile.go'-exector.go',单一的切入点create.go')是纯正的、决定性的并经过了黄金测试的——但**只创造**:容器将计划留在created'状态下,而OpStartContainer ' 只在异地国家排放(被暂停/死亡)。 应用的每件东西实际上都以第二道引擎(依赖命令 ' ):等待依赖 ' (健康/完成投票)、秘密/配置注射、启动前 ' /启动后 ' 钩为起点。 上'将两者绑上两个不同的守护进程快照,没有横跨各阶段的犬形项目 ' 对象,两个事件排放系统,以及接合处的潜在bug(启动Mx ' 未实际运行的路径;启动阶段控制器 ' 跳过配置-hash ' 过滤器;依赖-等待被`ctx.Done()--零 ' 吞噬)。
这种史诗般的轨迹 将启动阶段 汇入计划引擎 一次一个可审查的PR
□目标架构
指导分拆:决定与执行——不是"计划与必须". " 计划 " 是 " 汇编 " 的主要执行形式;调节员只是计划的一个制定者。
- ** 1个快照、1个项目、1个计划,分两个阶段。 ** " 调和选项 " 获得范围(创建、启动或两者兼有); " PlanNode " 获得 " 阶段 " 领域。
up-d'建立单一的Creat+Start计划;start'/scale'/watch-rebuild use scope Start(从未再创建);组成creative'保持范围 创造不变——现有的黄金测试没有改变。 - ** 新业务**(明确编号,40+):
Opwait Consultion ' -- -- 每个节点(等待服务、条件 -- -- 健康 -- -- 成功 -- -- 成功 -- -- 运行 -- -- 或 -- -- 健康),** 不同受抚养人之间重复**(一个wait Consultion ' 地图,如 " 网络节点 " )。需要:虚假'在当地被吸收:跳过的事件,节点成功——与现有的最佳努力'模式相同。 `条件:服务-启动 ' 需要** 无节点**:一个简单的DAG边缘表示它。 在执行时间**(节点为今天的“等待依赖”投票);“观察国”故意不发展“健康”领域——它将因建筑而僵化。- " OpRunPreStart " -- -- 每项服务。 只有在观察时没有复制品出现时才在计划时间发出(今天在“开始服务”中的规则),针对的是数量最少的复制品(“数量最少的容器”)。
- `OpRun-PostStart ' ——每个集装箱开始后。
OpStartContain ' 丰富**:秘密/配置注入折叠成ExecStartContain'(它们总是在启动前以一对正对运行——一个单独的节点将是噪音),目标要么从观察到的容器中解决,要么从同一计划中创建的创造号'中解决(OpRenameContainer'已经使用的`和解文本'机制)。 附带效应: . . . . . . .
内容来源: docker/compose