mgmt/ops_journal.md

2.5 KiB
Raw Blame History

🎯 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范式
  • 实施路径:
    1. 给master、ash3c等已有consul节点打标签 consul=true
    2. 修改vault job约束条件选择有consul标签的节点
    3. 可选给warden节点也打标签后续部署consul到该节点

🔍 当前发现

  • 所有节点Attributes为null说明Nomad客户端配置可能有问题
  • 用nomad拉起consul不能自动让节点具备consul属性
  • 重大发现nomad node status -verbose 和 -json 输出格式数据不一致!
    • verbose模式显示Meta中有"consul = true"
    • JSON格式显示Meta为null
    • 可能是Nomad的bug或数据同步问题

🎯 下一步行动

  1. 调查Attributes为null的原因 - 检查Nomad客户端配置
  2. 考虑用ansible部署consul - 确保consul作为系统服务运行
  3. 验证meta数据一致性 - 解决verbose和json格式数据不一致问题
  4. 重新思考节点标签策略 - 基于实际可用的数据格式制定策略

📋 待办清单

  • 检查bj-warden节点的consul配置
  • 在bj-warden节点启动consul服务
  • 验证vault job成功部署
  • 确认vault与consul集成正常

🚫 禁止操作

  • 移除vault job的service块 (会导致失去consul集成)
  • 忽略consul版本约束 (会导致兼容性问题)