2.5 KiB
2.5 KiB
🎯 HashiCorp Stack 运维集思录
📍 关键里程碑记录
✅ 2025-09-30 标志性成功
Nomad完全恢复正常运行
- 成功指标:
- Nomad server集群: 7个节点全部在线 (ch2.global为leader)
- Nomad client节点: 6个节点全部ready状态
- 服务状态: nomad服务运行正常
- 关键操作: 恢复了Nomad的consul配置 (
address = "master:8500,ash3c:8500,warden:8500")
❌ 当前大失败
Vault job无法部署到bj-warden节点
- 失败现象:
* Constraint "${node.unique.name} = bj-warden": 5 nodes excluded by filter * Constraint "${attr.consul.version} semver >= 1.8.0": 1 nodes excluded by filter - 根本原因发现: consul-cluster job约束条件为
(master|ash3c|hcp),warden节点被排除在外! - 历史教训: 之前通过移除service块让vault独立运行,但这导致vault无法与consul集成,项目失去意义
- 深层问题: 不是consul没运行,而是根本不允许在warden节点运行consul!
🎯 核心矛盾
Vault必须与Consul集成 ←→ bj-warden节点没有consul
🎯 新思路:给Nomad节点打consul标签
用户建议: 给所有运行consul的nomad节点打上标签标识
- 优势: 优雅、可扩展、符合Nomad范式
- 实施路径:
- 给master、ash3c等已有consul节点打标签
consul=true - 修改vault job约束条件,选择有consul标签的节点
- 可选:给warden节点也打标签,后续部署consul到该节点
- 给master、ash3c等已有consul节点打标签
🔍 当前发现
- 所有节点Attributes为null,说明Nomad客户端配置可能有问题
- 用nomad拉起consul不能自动让节点具备consul属性
- 重大发现:nomad node status -verbose 和 -json 输出格式数据不一致!
- verbose模式显示Meta中有"consul = true"
- JSON格式显示Meta为null
- 可能是Nomad的bug或数据同步问题
🎯 下一步行动
- 调查Attributes为null的原因 - 检查Nomad客户端配置
- 考虑用ansible部署consul - 确保consul作为系统服务运行
- 验证meta数据一致性 - 解决verbose和json格式数据不一致问题
- 重新思考节点标签策略 - 基于实际可用的数据格式制定策略
📋 待办清单
- 检查bj-warden节点的consul配置
- 在bj-warden节点启动consul服务
- 验证vault job成功部署
- 确认vault与consul集成正常
🚫 禁止操作
- ❌ 移除vault job的service块 (会导致失去consul集成)
- ❌ 忽略consul版本约束 (会导致兼容性问题)