From a0002d059898b13aaa3819c27e4b05d5e8ac25e6 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Sat, 8 Nov 2014 20:10:58 -0800 Subject: [PATCH] doc: add fallback to discovery section in clustering.md --- Documentation/0.5/clustering.md | 7 +++++++ Documentation/0.5/proxy.md | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Documentation/0.5/clustering.md b/Documentation/0.5/clustering.md index eef715b09..6a8c3eb69 100644 --- a/Documentation/0.5/clustering.md +++ b/Documentation/0.5/clustering.md @@ -101,6 +101,8 @@ $ curl -X PUT https://myetcd.local/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0 By setting the size key to the URL, you create a discovery URL with expected-cluster-size of 3. +If you bootstrap an etcd cluster using discovery service with more than the expected number of etcd members, the extra etcd processes will [fall back][fall-back] to being [proxies][proxy] by default. + The URL you will use in this case will be `https://myetcd.local/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83` and the etcd members will use the `https://myetcd.local/v2/keys/discovery/6c007a14875d53d9bf0ef5a6fc0257c817f0fb83` directory for registration as they start. Now we start etcd with those relevant flags for each member: @@ -131,6 +133,11 @@ https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de This will create the cluster with an initial expected size of 3 members. If you do not specify a size a default of 3 will be used. +If you bootstrap an etcd cluster using discovery service with more than the expected number of etcd members, the extra etcd processes will [fall back][fall-back] to being [proxies][proxy] by default. + +[fall-back]: proxy.md#fallback-to-proxy-mode-with-discovery-service +[proxy]: proxy.md + ``` ETCD_DISCOVERY=https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de ``` diff --git a/Documentation/0.5/proxy.md b/Documentation/0.5/proxy.md index 795bb8aed..e5f9e75d9 100644 --- a/Documentation/0.5/proxy.md +++ b/Documentation/0.5/proxy.md @@ -1,15 +1,15 @@ ## Proxy -As of version 0.5, etcd can now run as a transparent proxy. In this mode, etcd acts as a reverse proxy and forwards client requests to an active etcd cluster. The etcd proxy does not participant in the consensus replication of the etcd cluster, thus it neither increases the resilience nor decreases the write performance of the etcd cluster. +etcd can now run as a transparent proxy. Running etcd as a proxy allows for easily discovery of etcd within your infrastructure, since it can run on each machine as a local service. In this mode, etcd acts as a reverse proxy and forwards client requests to an active etcd cluster. The etcd proxy does not participant in the consensus replication of the etcd cluster, thus it neither increases the resilience nor decreases the write performance of the etcd cluster. etcd currently supports two proxy modes: `readwrite` and `readonly`. The default mode is `readwrite`, which forwards both read and write requests to the etcd cluster. A `readonly` etcd proxy only forwards read requests to the etcd cluster, and returns `HTTP 501` to all write requests. ### Using an etcd proxy To start etcd in proxy mode, you need to provide three flags: `proxy`, `listen-client-urls`, and `initial-cluster` (or `discovery-url`). -To start a readwrite proxy, set `proxy=on`; To start a readonly proxy, set `proxy=readonly`. +To start a readwrite proxy, set `-proxy on`; To start a readonly proxy, set `-proxy readonly`. -The proxy will be listening on `listen-client-urls` and forward requests to the etcd cluster specified in `initial-cluster` or `discovery url`. +The proxy will be listening on `listen-client-urls` and forward requests to the etcd cluster discovered from in `initial-cluster` or `discovery url`. #### Start an etcd proxy with a static configuration To start a proxy that will connect to a statically defined etcd cluster, specify the `initial-cluster` flag: @@ -27,6 +27,6 @@ etcd -proxy on -client-listen-urls 127.0.0.1:8080 -discovery https://discovery. ``` #### Fallback to proxy mode with discovery service -If you bootstrap a etcd cluster using [discovery service][discovery-service] with more than the expected number of etcd members, the extra etcd processes will fall back to being proxies by default. They will then forward the requests to the bootstrapped etcd cluster, just as if they had been started in as a proxy. For example, if you create a discovery url with `size=5`, and start ten etcd processes using that same discovery URL, the result will be a cluster with five etcd members and five proxies. Note that this behaviour can be disabled with the `proxy-fallback` flag. +If you bootstrap a etcd cluster using [discovery service][discovery-service] with more than the expected number of etcd members, the extra etcd processes will fall back to being `readwrite` proxies by default. They will forward the requests to the cluster as described above. For example, if you create a discovery url with `size=5`, and start ten etcd processes using that same discovery URL, the result will be a cluster with five etcd members and five proxies. Note that this behaviour can be disabled with the `proxy-fallback` flag. [discovery-service]: https://github.com/coreos/etcd/blob/master/Documentation/0.5/clustering.md#discovery