Table of Contents
說明
Consul 官方提供兩種方式進行備份還原:
- snapshot
- Consul Snapshot Agent (Enterprise)
用途是在發生 DR 時所使用,預設會透過 Leader 進行備份以下資料:
- Key/Value entries
- Service catalog
- Prepared queries
- Sessions
- ACLs
可以透過 -stale
option 改變成透過 follower 進行備份,透過 Follower 進行備份可以減少 Leader 的 loading,但是有可能會遺失尚未同步的資料,此備份方法尤其在 Cluster 的 Leader 死亡時有效。
snapshot 建立方式
CLI
export CONSUL_HTTP_TOKEN=
consul snapshot save backup.snap
consul snapshot inspect backup.snap
ID 27-61696-1675056853931
Size 20529
Index 61696
Term 27
Version 1
Type Count Size
---- ---- ----
Register 11 7.8KB
ConnectCAProviderState 2 3KB
ACLToken 6 2.3KB
ConnectCA 1 1.9KB
ACLPolicy 6 1.7KB
ACLRole 3 927B
Index 26 865B
CoordinateBatchUpdate 4 722B
FederationState 2 298B
SystemMetadata 4 292B
Autopilot 1 199B
ConnectCAConfig 1 197B
ChunkingState 1 12B
---- ---- ----
Total 20KB
API
curl -X GET --header "X-Consul-Token: " -K \
https://127.0.0.1:8501/v1/snapshot?dc=my-datacenter&stale=true \
--output snapshot.snap
Backup Restore
CLI
consul snapshot restore backup.snap
[root@consul-client-1 ~]# consul snapshot restore backup.snap
Restored snapshot
API
curl -X PUT --header "X-Consul-Token: " -K \
https://127.0.0.1:8501/v1/snapshot \
--data-binary snapshot.snap