使用 Vault 模板运行的任务应该能够幸存
作者: pipethedev创建于 2026年8月2日更新于 2026年9月10日
标签type/enhancementstage/waiting-replytheme/vaulttheme/templatehcc/jira
建议
当 Vault 无法到达时, 游牧人应该让已经运行的任务保持活性, 并且继续使用上次成功渲染的模板/ env 值 。 秘密同步可以停止;工作量不应该停止.
现在,断层断层仍可升级为重启/失败模板/等待所有依赖于 " 断层 " + " template " 的数据。 `vault retrich {尝试=0 }通过等待更长的时间有所帮助,但这与"保留最后已知的好秘密"不同.
- 背景情况
这与#11209有关. 这个问题描述的是同一类断电(Vault 503 – 有模板重新启动/被卡住待决). 它被 #11606 揭发领事-template knobs("vault retry"等)关闭.
这种改进是有用的,我们利用了它(或计划)。 它没有完全满足操作员从 #11209 的需要 : ** 不要将 Vault 断层转换为完全的应用程序断层, 用于在磁盘/ 进程内已存在秘密的任务 。 **
使用大小写
我们执行大量长寿游牧人的工作,通过模板(`env = true',连续渲染)从Vault中注入应用配置/机密。 断层是依赖 * 变化 * 和 * 新开始 * , 这很好。 伤害是:
- 断层/网络分区/维护。
- 模板表或符号更新失败。
- 健康的任务重新开始或失败。
- 在Vault返回之前,即使应用软件本身与上个嵌入体没有问题,它们也不能重新开始。
我们不止一次 更优先的退化模式:没有秘密更新,应用程序持续运行,只有需要新渲染的部署/启动被屏蔽.
尝试的解决方案
- `template { change mode = "noop"}- 帮助秘密 *content * changes, 而不是"Vault is down / compare fail".
- 客户端 `template.vault retrich' 有高/无限制的尝试——延迟失败,不定义最后的好秘密语义;在长期停用的情况下,也无助于"我需要明确的紧急行为". ——"Vault HA" ——必要,但并不能去除对活的Vault的强烈依赖,以图样健康.
可能的方向(非指令性)
比如说:
- 客户端或任务选项:在成功初始渲染后发生故障时, **log + 保存上一个文件/ env **, 请不要失败运行中的任务 。
- 或明确的"持久最后的渲染"/紧急模式(类似的想法被浮出#11209上.
- 清除文件,说明什么是 "保证" 在一个故障出行 运行与新的等分。
乐于提供更多关于我们的工作规格/客户端配置的详细信息,如果有用的话(已编辑).
游牧民族版本
游牧民族 v2.0.3
复制(高水平)
- 以 " vault " + " template " 读取 " vault " (
env = true',once = false')。 - 成功开始工作。
- 脱机/返回503。
- 央视模板/更新路径最终会干扰运行工作或阻断重启;与所期望的"保持最后的秘密,保持上升"相比
内容来源: hashicorp/nomad