From 3068340a83cb64373d9a910efd3dca2283d518dd Mon Sep 17 00:00:00 2001 From: Kelsey Hightower Date: Sun, 2 Nov 2014 21:17:43 -0800 Subject: [PATCH] docs: fix usage of peers urls --- Documentation/0.5/api.md | 112 ++++++++++----------- Documentation/0.5/clustering.md | 43 ++++---- Documentation/0.5/runtime-configuration.md | 28 +++--- 3 files changed, 94 insertions(+), 89 deletions(-) diff --git a/Documentation/0.5/api.md b/Documentation/0.5/api.md index 371c3e783..65aa76a62 100644 --- a/Documentation/0.5/api.md +++ b/Documentation/0.5/api.md @@ -401,19 +401,19 @@ curl 'http://127.0.0.1:2379/v2/keys/dir/asdf?consistent=true&wait=true' ```json { - "action": "expire", - "node": { - "createdIndex": 8, - "key": "/dir", - "modifiedIndex": 15 - }, - "prevNode": { - "createdIndex": 8, - "key": "/dir", - "dir":true, - "modifiedIndex": 17, - "expiration": "2013-12-11T10:39:35.689275857-08:00" - } + "action": "expire", + "node": { + "createdIndex": 8, + "key": "/dir", + "modifiedIndex": 15 + }, + "prevNode": { + "createdIndex": 8, + "key": "/dir", + "dir":true, + "modifiedIndex": 17, + "expiration": "2013-12-11T10:39:35.689275857-08:00" + } } ``` @@ -639,22 +639,22 @@ We should see the response as an array of items: ```json { "action": "get", -    "node": { -     "key": "/", -       "dir": true, -       "nodes": [ -         { -             "key": "/foo_dir", -             "dir": true, -             "modifiedIndex": 2, -             "createdIndex": 2 -          }, -          { -             "key": "/foo", -             "value": "two", -             "modifiedIndex": 1, -             "createdIndex": 1 -          } + "node": { + "key": "/", + "dir": true, + "nodes": [ + { + "key": "/foo_dir", + "dir": true, + "modifiedIndex": 2, + "createdIndex": 2 + }, + { + "key": "/foo", + "value": "two", + "modifiedIndex": 1, + "createdIndex": 1 + } ] } } @@ -669,33 +669,33 @@ curl http://127.0.0.1:2379/v2/keys/?recursive=true ```json { -    "action": "get", -    "node": { -        "key": "/", -        "dir": true, -        "nodes": [ -            { -                "key": "/foo_dir", -                "dir": true, -                "nodes": [ -                    { -                        "key": "/foo_dir/foo", -                        "value": "bar", -                        "modifiedIndex": 2, -                        "createdIndex": 2 -                    } -                ], -                "modifiedIndex": 2, -                "createdIndex": 2 -            }, -            { -                "key": "/foo", -                "value": "two", -                "modifiedIndex": 1, -                "createdIndex": 1 -            } -        ] -    } + "action": "get", + "node": { + "key": "/", + "dir": true, + "nodes": [ + { + "key": "/foo_dir", + "dir": true, + "nodes": [ + { + "key": "/foo_dir/foo", + "value": "bar", + "modifiedIndex": 2, + "createdIndex": 2 + } + ], + "modifiedIndex": 2, + "createdIndex": 2 + }, + { + "key": "/foo", + "value": "two", + "modifiedIndex": 1, + "createdIndex": 1 + } + ] + } } ``` diff --git a/Documentation/0.5/clustering.md b/Documentation/0.5/clustering.md index 6ff4a1c18..70e9b3efc 100644 --- a/Documentation/0.5/clustering.md +++ b/Documentation/0.5/clustering.md @@ -16,13 +16,13 @@ before starting we can use an offline bootstrap configuration. Each machine will get either the following command line or environment variables: ``` -ETCD_INITIAL_CLUSTER=”infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379” +ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380" ETCD_INITIAL_CLUSTER_STATE=new ``` ``` --initial-cluster infra0=http://10.0.1.10:2379,http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state new +-initial-cluster infra0=http://10.0.1.10:2380,http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state new ``` If you are spinning up multiple clusters (or creating and destroying a single cluster) with same configuration for testing purpose, it is highly recommended that you specify a unique `initial-cluster-token` for the different clusters. @@ -31,15 +31,15 @@ By doing this, etcd can generate unique cluster IDs and member IDs for the clust On each machine you would start etcd with these flags: ``` -$ etcd -name infra0 -initial-advertise-peer-urls https://10.0.1.10:2379 initial-cluster-token etcd-cluster-1\ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state new -$ etcd -name infra1 -initial-advertise-peer-urls https://10.0.1.11:2379 initial-cluster-token etcd-cluster-1\ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state new -$ etcd -name infra2 -initial-advertise-peer-urls https://10.0.1.12:2379 initial-cluster-token etcd-cluster-1\ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state new +$ etcd -name infra0 -initial-advertise-peer-urls https://10.0.1.10:2379 initial-cluster-token etcd-cluster-1 \ + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state new +$ etcd -name infra1 -initial-advertise-peer-urls https://10.0.1.11:2379 initial-cluster-token etcd-cluster-1 \ + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state new +$ etcd -name infra2 -initial-advertise-peer-urls https://10.0.1.12:2379 initial-cluster-token etcd-cluster-1 \ + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state new ``` The command line parameters starting with `-initial-cluster` will be ignored on @@ -52,23 +52,24 @@ changes to the configuration later see our guide on runtime configuration. In the following case we have not included our new host in the list of enumerated nodes. If this is a new cluster, the node must be added to the list of initial cluster members. + ``` $ etcd -name infra1 -initial-advertise-peer-urls http://10.0.1.11:2379 \ - -initial-cluster infra0=http://10.0.1.10:2379 \ - -initial-cluster-state new + -initial-cluster infra0=http://10.0.1.10:2380 \ + -initial-cluster-state new etcd: infra1 not listed in the initial cluster config exit 1 ``` In this case we are attempting to map a node (infra0) on a different address -(127.0.0.1:2379) than its enumerated address in the cluster list -(10.0.1.10:2379). If this node is to listen on multiple addresses, all -addresses must be reflected in the “initial-cluster” configuration directive. +(127.0.0.1:2380) than its enumerated address in the cluster list +(10.0.1.10:2380). If this node is to listen on multiple addresses, all +addresses must be reflected in the "initial-cluster" configuration directive. ``` $ etcd -name infra0 -initial-advertise-peer-urls http://127.0.0.1:2379 \ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state=new + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state=new etcd: infra0 has different advertised URLs in the cluster and advertised peer URLs list exit 1 ``` @@ -78,8 +79,8 @@ join this cluster you will get a cluster ID mismatch and etcd will exit. ``` $ etcd -name infra3 -initial-advertise-peer-urls http://10.0.1.13:2379 \ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra3=http://10.0.1.13:2379 \ - -initial-cluster-state=new + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra3=http://10.0.1.13:2380 \ + -initial-cluster-state=new etcd: conflicting cluster ID to the target cluster (c6ab534d07e8fcc4 != bc25ea2a74fb18b0). Exiting. exit 1 ``` diff --git a/Documentation/0.5/runtime-configuration.md b/Documentation/0.5/runtime-configuration.md index 9a3d475b7..951a0fad2 100644 --- a/Documentation/0.5/runtime-configuration.md +++ b/Documentation/0.5/runtime-configuration.md @@ -67,7 +67,7 @@ We then use the `remove` command to perform the removal: ``` $ etcdctl member remove a8266ecf031671f3 -EOF +Removed member a8266ecf031671f3 from cluster ``` The target member will stop itself at this point and print out the removal in the log: @@ -80,24 +80,28 @@ Removal of the leader is safe, but the cluster will be out of progress for a per ### Add a Member -Adding a member is a two step process. -First we have to tell the cluster that it should expect a new member to join, then we will need to start the member with the correct configuration. +Adding a member is a two step process: -Using `etcdctl`, let’s tell the cluster about the new member: + * Add the new member to the cluster via the [members API](https://github.com/coreos/etcd/blob/master/Documentation/0.5/other_apis.md#post-v2members) or the `etcdctl member add` command. + * Start the member with the correct configuration. + +Using `etcdctl` let's add the new member to the cluster: ``` -$ etcdctl member add infra3 http://10.0.1.13:2379 +$ etcdctl member add infra3 http://10.0.1.13:2380 added member 9bf1b35fc7761a23 to cluster ETCD_NAME="infra3" -ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379,infra3=http://10.0.1.13:2379" +ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380,infra3=http://10.0.1.13:2380" ETCD_INITIAL_CLUSTER_STATE=existing ``` +> Notice that infra3 was added to the cluster using its advertised peer URL. + Now start the new etcd process with the relevant flags for the new member: ``` $ export ETCD_NAME="infra3" -$ export ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379,infra3=http://10.0.1.13:2379" +$ export ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380,infra3=http://10.0.1.13:2380" $ export ETCD_INITIAL_CLUSTER_STATE=existing $ etcd -listen-client-urls http://10.0.1.13:2379 -advertise-client-urls http://10.0.1.13:2379 -listen-peer-urls http://10.0.1.13:2380 -initial-advertise-peer-urls http://10.0.1.13:2380 ``` @@ -114,18 +118,18 @@ If this is a new cluster, the node must be added to the list of initial cluster ``` $ etcd -name infra3 \ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379 \ - -initial-cluster-state existing + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \ + -initial-cluster-state existing etcdserver: assign ids error: the member count is unequal exit 1 ``` -In this case we give a different address (10.0.1.14:2379) to the one that we used to join the cluster (10.0.1.13:2379). +In this case we give a different address (10.0.1.14:2380) to the one that we used to join the cluster (10.0.1.13:2380). ``` $ etcd -name infra4 \ - -initial-cluster infra0=http://10.0.1.10:2379,infra1=http://10.0.1.11:2379,infra2=http://10.0.1.12:2379,infra4=http://10.0.1.14:2379 \ - -initial-cluster-state existing + -initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380,infra4=http://10.0.1.14:2380 \ + -initial-cluster-state existing etcdserver: assign ids error: unmatched member while checking PeerURLs exit 1 ```