Consul 常用命令
Consul 的命令行覆盖节点、服务、KV、配置四类日常操作,多数命令支持 -http-addr 指定访问的 agent 地址,默认连本机 8500。
启动 dev agent 作为操作对象
先在第一个终端把 agent 跑起来,后面的命令在第二个终端执行:
consul agent -dev
# 输出:Consul agent running! ... HTTP: 8500 DNS: 8600
集群与节点信息
members 看成员,catalog 查目录,info 看运行概况:
consul members
# 输出:Node Address Status Type Build Protocol DC Partition
# 输出:主机名 127.0.0.1:8301 alive server 1.18.2 2 dc1 default
consul catalog nodes # 列出全部节点
consul catalog services # 列出已注册的全部服务名
consul info # 分段打印运行信息
consul info 输出按模块分组,常用键速查:
| 模块:键 | 含义 |
|---|---|
| agent:version | Consul 版本 |
| raft:leader | 当前 leader 的 RPC 地址 |
| serf_lan:members | LAN 已知成员数 |
| runtime:num_goroutines | 运行时 goroutine 数 |
服务注册与注销(文件方式)
1.11+ 提供了 services 子命令,用文件直接向本地 agent 注册/注销服务(文件内为一个或多个服务定义,写法见第 5 章):
consul services register web.json # 注册 web.json 里描述的服务
consul services deregister web.json # 注销对应服务
consul catalog services # 验证:输出里应出现刚注册的服务名
KV 键值操作
kv 命令是 put/get/delete 三件套(完整讲解见第 9 章):
consul kv put app/port 8080
# 输出:Success! Data written to: app/port
consul kv get app/port
# 输出:8080
consul kv delete app/port
# 输出:Success! Deleted key: app/port
配置校验
改过配置文件先验证语法再启动,能避免低级错误导致 agent 起不来:
consul validate /etc/consul.d/server.json
# 输出:Configuration is valid!
consul validate /etc/consul.d # 也可直接校验整个目录
退出集群
consul leave 让本机 agent 优雅退出(先通知集群、标记离开再退出),等同 Ctrl+C 的显式版:
consul leave
# 输出:Agent left the cluster(随后进程退出)
小结
日常高频命令可归类记忆:members/catalog/info 看状态,services register/deregister 管服务,kv put/get/delete 管键值,validate 校验配置。配合 Web 界面(第 10 章)即可覆盖绝大多数运维操作。