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:versionConsul 版本
raft:leader当前 leader 的 RPC 地址
serf_lan:membersLAN 已知成员数
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 章)即可覆盖绝大多数运维操作。

笔记加载中…