希曼日记

使用 Consul Cli迁移 KV

引入问题

如果旧 Consul 配置中心的机器因为各种原因不使用了, 需要迁移, 那么很多开发者第一时间想到的就是手动去 Consul 去 Consul UI 里一个一个去复制配置文件到新的机器, 这种方式就比较繁琐了, 还浪费大量时间, 而且配置一多, 需要的时间则更长

解决问题

使用 Consul 提供的 CLI 即可解决上面提到的问题, 只需要在新机器上安装 Consul CLI 即可, 然后使用两条命令即可完成上面提到的繁杂的步骤

使用

安装

参考https://github.com/kubesun/docker-deploy/consul/cli的 shell 命令

使用

导出原配置中心的数据

consul kv export -http-addr=<IP:PORT> ecommerce/ > consul-kv.json

新配置中心导入数据: 方式一: 在按照了 consul cli 的工具导入到新配置中心(快捷)

cat consul-kv.json | consul kv import -http-addr=<IP:PORT> -

方式二: 在新机器按照 consul cli并导入

consul kv import @consul-kv.json

TLS:

kubectl get secret -n consul

kubectl get secret consul-root-ca-secret -n consul -o jsonpath='{.data.tls\.crt}' | base64 -d > consul-final-ca.crt

cat consul-local-kv.json | consul kv import \
  -http-addr=https://consul.sumery.com:443 \
  -ca-file=consul-final-ca.crt -

输出: Pasted image 20250413205931

参考

https://developer.hashicorp.com/consul/commands/kv/