From 2d76e5e27344ee7a2b64e27e176b80a44459a66d Mon Sep 17 00:00:00 2001 From: Kelsey Hightower Date: Wed, 17 Dec 2014 11:05:53 -0800 Subject: [PATCH] doc: update node migration guide --- Documentation/0.5/admin_guide.md | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/Documentation/0.5/admin_guide.md b/Documentation/0.5/admin_guide.md index 307e3abce..84420cdd6 100644 --- a/Documentation/0.5/admin_guide.md +++ b/Documentation/0.5/admin_guide.md @@ -43,6 +43,69 @@ The data directory contains all the data to recover a member to its point-in-tim * Update the peer URLs for that member to reflect the new machine according to the [member api] [change peer url] * Start etcd on the new machine, using the same configuration and the copy of the data directory +This example will walk you through the process of migrating the infra1 member to a new machine: + +|Name|Peer URL| +|------|--------------| +|infra0|10.0.1.10:2380| +|infra1|10.0.1.11:2380| +|infra2|10.0.1.12:2380| + +``` +$ export ETCDCTL_PEERS=http://10.0.1.10:2379,http://10.0.1.11:2379,http://10.0.1.12:2379 +``` + +``` +$ etcdctl member list +84194f7c5edd8b37: name=infra0 peerURLs=http://10.0.1.10:2380 clientURLs=http://127.0.0.1:2379,http://10.0.1.10:2379 +b4db3bf5e495e255: name=infra1 peerURLs=http://10.0.1.11:2380 clientURLs=http://127.0.0.1:2379,http://10.0.1.11:2379 +bc1083c870280d44: name=infra2 peerURLs=http://10.0.1.12:2380 clientURLs=http://127.0.0.1:2379,http://10.0.1.12:2379 +``` + +#### Stop the member etcd process + +``` +$ ssh core@10.0.1.11 +``` + +``` +$ sudo systemctl stop etcd +``` + +#### Copy the data directory of the now-idle member to the new machine + +``` +$ tar -cvzf node1.etcd.tar.gz /var/lib/etcd/node1.etcd +``` + +``` +$ scp node1.etcd.tar.gz core@10.0.1.13:~/ +``` + +#### Update the peer URLs for that member to reflect the new machine + +``` +$ curl http://10.0.1.10:2379/v2/members/b4db3bf5e495e255 -XPUT \ +-H "Content-Type: application/json" -d '{"peerURLs":["http://10.0.1.13:2380"]}' +``` + +#### Start etcd on the new machine, using the same configuration and the copy of the data directory + +``` +$ ssh core@10.0.1.13 +``` + +``` +$ tar -xzvf node1.etcd.tar.gz -C /var/lib/etcd +``` + +``` +etcd -name node1 \ +-listen-peer-urls http://10.0.1.13:2380 \ +-listen-client-urls http://10.0.1.13:2379,http://127.0.0.1:2379 \ +-advertise-client-urls http://10.0.1.13:2379,http://127.0.0.1:2379 +``` + [change peer url]: https://github.com/coreos/etcd/blob/master/Documentation/0.5/other_apis.md#change-the-peer-urls-of-a-member ### Disaster Recovery