texto
Durante o trabalho, devemos garantir que o cluster cônsul implantado no ambiente de produção possa fornecer serviços externos de forma segura e estável, e possa se recuperar rapidamente mesmo se ocorrer uma falha do sistema.Aqui descreveremos algumas operações de backup e restauração e operações de importação e exportação de KV.
Faça backup e restaure arquivos de configuração, status do servidor
Existem dois tipos principais de dados que precisam de backup: arquivos de configuração relacionados ao cônsul e status do servidor cônsul. Basta usar o seguinte script para fazer backup:
ts=$(date +%Y%m%d%H%M%S)
# 备份配置文件
tar -czpf consul_config_$ts.tar.gz /etc/consul/config.json /etc/consul/consul.d
# 备份consul的服务器状态,注意由于该consul开启了ACL,执行consul snapshot save时必须带Management Token,关于consul ACL token的说明见上一篇"consul安全加固"
consul snapshot save --http-addr=http://10.12.142.216:8500 -token=b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 consul_state_$ts.snap
# 查看一下生成的consul服务器状态文件
consul snapshot inspect consul_state_$ts.snap
consul_config_xxx.tar.gz
Por fim , os dados gerados serão consul_state_xxx.snap
copiados para outros servidores para armazenamento adequado.
A restauração também é relativamente simples, basta usar o seguinte script:
# 还原配置文件
tar -xzpf consul_config_20180521145032.tar.gz -C /
# 还原consul服务器状态
consul snapshot restore --http-addr=http://10.12.142.216:8500 -token=b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 consul_state_20180521145032.snap
Importação e exportação de armazenamento KV
Consul fornece comandos diretamente para importar e exportar os dados armazenados no KV, como segue:
$ ts=$(date +%Y%m%d%H%M%S)
# 导出所有kv键值对,注意最后一个参数是导出键值对的前缀,为空字符串说明要导出所有
$ consul kv export --http-addr=http://10.12.142.216:8500 -token=b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 '' > consul_kv_$ts.json
# 查看下导出的json文件格式
$ cat consul_kv_$ts.json
[
{
"key": "xxxxxx",
"flags": 0,
"value": "yyyyyy"
},
{
"key": "xxxxxx2",
"flags": 0,
"value": "eyJ2ZXJzaW9uX3RpbWVzdGFtcCI6IC0xfQ=="
},
]
Verifica-se que cada par de valores-chave é um dos valores json, onde chave é o nome do par de valores-chave e valor é a codificação base64 do par de valores-chave Valor. Você pode ver o valor original usando o base64 -d
comando codificação, como:
$ echo 'eyJ2ZXJzaW9uX3RpbWVzdGFtcCI6IC0xfQ==' | base64 -d
{"version_timestamp": -1}
A importação é ainda mais simples:
consul kv import --http-addr=http://10.12.142.216:8500 -token=b3a9bca3-6e8e-9678-ea35-ccb8fb272d42 @consul_kv_20180521150322.json
SOBRE................................................. ....... ........................................... ......final espalhar flores