This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/apisix-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new a371b3e  Deploy to GitHub pages
a371b3e is described below

commit a371b3e0696e35b0b0b0cee7059446cd18cbb3fe
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Dec 23 09:13:23 2020 +0000

    Deploy to GitHub pages
---
 apisix/admin-api.html                       | 18 ++++++-------
 apisix/admin-api/index.html                 | 18 ++++++-------
 apisix/architecture-design.html             | 37 +++-----------------------
 apisix/architecture-design/index.html       | 37 +++-----------------------
 apisix/control-api.html                     | 28 +++++++++++++++++++-
 apisix/control-api/index.html               | 28 +++++++++++++++++++-
 apisix/zh-cn/admin-api.html                 | 20 +++++++-------
 apisix/zh-cn/admin-api/index.html           | 20 +++++++-------
 apisix/zh-cn/architecture-design.html       | 41 ++---------------------------
 apisix/zh-cn/architecture-design/index.html | 41 ++---------------------------
 10 files changed, 102 insertions(+), 186 deletions(-)

diff --git a/apisix/admin-api.html b/apisix/admin-api.html
index 28e615a..a41d409 100644
--- a/apisix/admin-api.html
+++ b/apisix/admin-api.html
@@ -519,8 +519,7 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 </thead>
 <tbody>
 <tr><td>type</td><td>required</td><td><code>roundrobin</code> supports the 
weight of the load, <code>chash</code> consistency hash,<code>ewma</code> 
minimum latency ,pick one of them.see <a 
href="https://en.wikipedia.org/wiki/EWMA_chart";>https://en.wikipedia.org/wiki/EWMA_chart</a>
 for details</td></tr>
-<tr><td>nodes</td><td>required if <code>k8s_deployment_info</code> not 
configured</td><td>Hash table, the key of the internal element is the upstream 
machine address list, the format is <code>Address + Port</code>, where the 
address part can be IP or domain name, such as <code>192.168.1.100:80</code>, 
<code>foo.com:80</code>, etc. Value is the weight of the node. In particular, 
when the weight value is <code>0</code>, it has a special meaning, which 
usually means that the upstream node i [...]
-<tr><td>k8s_deployment_info</td><td>required if <code>nodes</code> not 
configured</td><td>fields: 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,
 <code>port</code> is number, <code>backend_type</code> is <code>pod</code> or 
<code>service</code>, others is string.</td></tr>
+<tr><td>nodes</td><td>required</td><td>Hash table, the key of the internal 
element is the upstream machine address list, the format is <code>Address + 
Port</code>, where the address part can be IP or domain name, such as 
<code>192.168.1.100:80</code>, <code>foo.com:80</code>, etc. Value is the 
weight of the node. In particular, when the weight value is <code>0</code>, it 
has a special meaning, which usually means that the upstream node is invalid 
and never wants to be selected. The <code [...]
 <tr><td>hash_on</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Supported types 
<code>vars</code>(Nginx variables), <code>header</code>(custom header), 
<code>cookie</code>, <code>consumer</code>, the default value is 
<code>vars</code>.</td></tr>
 <tr><td>key</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
@@ -535,6 +534,14 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>update_time</td><td>optional</td><td>epoch timestamp in second, like 
<code>1602883670</code>, will be created automatically if missing</td></tr>
 </tbody>
 </table>
+<p><code>hash_on</code> can be set to different types:</p>
+<ol>
+<li>when it is <code>vars</code>, the <code>key</code> is required. The 
<code>key</code> can be any <a 
href="http://nginx.org/en/docs/varindex.html";>Nginx builtin variables</a>, 
without the prefix '$'.</li>
+<li>when it is <code>header</code>, the <code>key</code> is required. It is 
equal to &quot;http_<code>key</code>&quot;.</li>
+<li>when it is <code>cookie</code>, the <code>key</code> is required. It is 
equal to &quot;cookie_<code>key</code>&quot;.</li>
+<li>when it is <code>consumer</code>, the <code>key</code> is optional. The 
key is the <code>consumer_name</code> set by authentication plugin.</li>
+<li>If there is no value for either <code>hash_on</code> or <code>key</code>, 
<code>remote_addr</code> will be used as key.</li>
+</ol>
 <p>Config Example:</p>
 <pre><code class="hljs css language-shell">{
     "id": "1",                  # id
@@ -545,13 +552,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "read":15,
     },
     "nodes": {"host:80": 100},  # Upstream machine address list, the format is 
`Address + Port`
-    "k8s_deployment_info": {    # kubernetes deployment info
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",    # pod or service
-        "port": 8080
-    },
     "type":"roundrobin",        # chash or roundrobin
     "checks": {},               # Health check parameters
     "hash_on": "",
diff --git a/apisix/admin-api/index.html b/apisix/admin-api/index.html
index 28e615a..a41d409 100644
--- a/apisix/admin-api/index.html
+++ b/apisix/admin-api/index.html
@@ -519,8 +519,7 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 </thead>
 <tbody>
 <tr><td>type</td><td>required</td><td><code>roundrobin</code> supports the 
weight of the load, <code>chash</code> consistency hash,<code>ewma</code> 
minimum latency ,pick one of them.see <a 
href="https://en.wikipedia.org/wiki/EWMA_chart";>https://en.wikipedia.org/wiki/EWMA_chart</a>
 for details</td></tr>
-<tr><td>nodes</td><td>required if <code>k8s_deployment_info</code> not 
configured</td><td>Hash table, the key of the internal element is the upstream 
machine address list, the format is <code>Address + Port</code>, where the 
address part can be IP or domain name, such as <code>192.168.1.100:80</code>, 
<code>foo.com:80</code>, etc. Value is the weight of the node. In particular, 
when the weight value is <code>0</code>, it has a special meaning, which 
usually means that the upstream node i [...]
-<tr><td>k8s_deployment_info</td><td>required if <code>nodes</code> not 
configured</td><td>fields: 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,
 <code>port</code> is number, <code>backend_type</code> is <code>pod</code> or 
<code>service</code>, others is string.</td></tr>
+<tr><td>nodes</td><td>required</td><td>Hash table, the key of the internal 
element is the upstream machine address list, the format is <code>Address + 
Port</code>, where the address part can be IP or domain name, such as 
<code>192.168.1.100:80</code>, <code>foo.com:80</code>, etc. Value is the 
weight of the node. In particular, when the weight value is <code>0</code>, it 
has a special meaning, which usually means that the upstream node is invalid 
and never wants to be selected. The <code [...]
 <tr><td>hash_on</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Supported types 
<code>vars</code>(Nginx variables), <code>header</code>(custom header), 
<code>cookie</code>, <code>consumer</code>, the default value is 
<code>vars</code>.</td></tr>
 <tr><td>key</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
 <tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
@@ -535,6 +534,14 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>update_time</td><td>optional</td><td>epoch timestamp in second, like 
<code>1602883670</code>, will be created automatically if missing</td></tr>
 </tbody>
 </table>
+<p><code>hash_on</code> can be set to different types:</p>
+<ol>
+<li>when it is <code>vars</code>, the <code>key</code> is required. The 
<code>key</code> can be any <a 
href="http://nginx.org/en/docs/varindex.html";>Nginx builtin variables</a>, 
without the prefix '$'.</li>
+<li>when it is <code>header</code>, the <code>key</code> is required. It is 
equal to &quot;http_<code>key</code>&quot;.</li>
+<li>when it is <code>cookie</code>, the <code>key</code> is required. It is 
equal to &quot;cookie_<code>key</code>&quot;.</li>
+<li>when it is <code>consumer</code>, the <code>key</code> is optional. The 
key is the <code>consumer_name</code> set by authentication plugin.</li>
+<li>If there is no value for either <code>hash_on</code> or <code>key</code>, 
<code>remote_addr</code> will be used as key.</li>
+</ol>
 <p>Config Example:</p>
 <pre><code class="hljs css language-shell">{
     "id": "1",                  # id
@@ -545,13 +552,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "read":15,
     },
     "nodes": {"host:80": 100},  # Upstream machine address list, the format is 
`Address + Port`
-    "k8s_deployment_info": {    # kubernetes deployment info
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",    # pod or service
-        "port": 8080
-    },
     "type":"roundrobin",        # chash or roundrobin
     "checks": {},               # Health check parameters
     "hash_on": "",
diff --git a/apisix/architecture-design.html b/apisix/architecture-design.html
index 5b90e0b..9720ce4 100644
--- a/apisix/architecture-design.html
+++ b/apisix/architecture-design.html
@@ -195,42 +195,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <p>As shown in the image above, by creating an Upstream object and referencing 
it by ID in <code>Route</code>, you can ensure that only the value of an object 
is maintained.</p>
 <p>Upstream configuration can be directly bound to the specified 
<code>Route</code> or it can be bound to <code>Service</code>, but the 
configuration in <code>Route</code> has a higher priority. The priority 
behavior here is very similar to <code>Plugin</code>.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuration"></a><a 
href="#configuration" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>In addition to the basic complex equalization algorithm selection, APISIX's 
Upstream also supports logic for upstream passive health check and retry, see 
the table below.</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Optional</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>type</td><td>required</td><td><code>roundrobin</code> supports the 
weight of the load, <code>chash</code> consistency hash, pick one of 
them.</td></tr>
-<tr><td>nodes</td><td>required if <code>service_name</code> and 
<code>k8s_deployment_info</code> not configured</td><td>Hash table, the key of 
the internal element is the upstream machine address list, the format is 
<code>Address + Port</code>, where the address part can be IP or domain name, 
such as <code>192.168.1.100:80</code>, <code>foo.com:80</code>, etc. Value is 
the weight of the node. In particular, when the weight value is <code>0</code>, 
it has a special meaning, which usually  [...]
-<tr><td>service_name</td><td>required if <code>nodes</code> and 
<code>k8s_deployment_info</code> not configured</td><td>The name of the 
upstream service and used with the registry, refer to <a 
href="/apisix/discovery">Integration service discovery registry</a>.</td></tr>
-<tr><td>k8s_deployment_info</td><td>required if <code>nodes</code> and 
<code>service_name</code> not configured</td><td>fields: 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,
 <code>port</code> is number, <code>backend_type</code> is <code>pod</code> or 
<code>service</code>, others is string.</td></tr>
-<tr><td>hash_on</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Supported types 
<code>vars</code>(Nginx variables), <code>header</code>(custom header), 
<code>cookie</code>, <code>consumer</code>, the default value is 
<code>vars</code>.</td></tr>
-<tr><td>key</td><td>required</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
-<tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
-<tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value.</td></tr>
-<tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
-<tr><td>desc</td><td>optional</td><td>Identifies route names, usage scenarios, 
and more.</td></tr>
-<tr><td>labels</td><td>optional</td><td>The key/value pairs to specify 
attributes.</td></tr>
-<tr><td>pass_host</td><td>optional</td><td><code>pass</code> pass the client 
request host, <code>node</code> not pass the client request host, using the 
upstream node host, <code>rewrite</code> rewrite host by the configured 
<code>upstream_host</code>.</td></tr>
-<tr><td>upstream_host</td><td>optional</td><td>This option is only valid if 
the <code>pass_host</code> is <code>rewrite</code>.</td></tr>
-</tbody>
-</table>
+<p>In addition to the basic complex equalization algorithm selection, APISIX's 
Upstream also supports logic for upstream passive health check and retry, see 
the link below.</p>
+<p><a 
href="https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream";>https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream</a></p>
 <p>Create an upstream object use case:</p>
 <pre><code class="hljs css language-json">curl 
http://127.0.0.1:9080/apisix/admin/upstreams/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
-    "type": "roundrobin",
-    "k8s_deployment_info": {
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",
-        "port": 8080
-    }
-}'
-
-curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
-{
     "type": "chash",
     "key": "remote_addr",
     "nodes": {
@@ -243,7 +212,7 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 <pre><code class="hljs css language-shell">curl 
http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
     "uri": "/index.html",
-    "upstream_id": 2
+    "upstream_id": 1
 }'
 </code></pre>
 <p>For convenience, you can also directly bind the upstream address to a 
<code>Route</code> or <code>Service</code>, for example:</p>
diff --git a/apisix/architecture-design/index.html 
b/apisix/architecture-design/index.html
index 5b90e0b..9720ce4 100644
--- a/apisix/architecture-design/index.html
+++ b/apisix/architecture-design/index.html
@@ -195,42 +195,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <p>As shown in the image above, by creating an Upstream object and referencing 
it by ID in <code>Route</code>, you can ensure that only the value of an object 
is maintained.</p>
 <p>Upstream configuration can be directly bound to the specified 
<code>Route</code> or it can be bound to <code>Service</code>, but the 
configuration in <code>Route</code> has a higher priority. The priority 
behavior here is very similar to <code>Plugin</code>.</p>
 <h3><a class="anchor" aria-hidden="true" id="configuration"></a><a 
href="#configuration" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
-<p>In addition to the basic complex equalization algorithm selection, APISIX's 
Upstream also supports logic for upstream passive health check and retry, see 
the table below.</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Optional</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>type</td><td>required</td><td><code>roundrobin</code> supports the 
weight of the load, <code>chash</code> consistency hash, pick one of 
them.</td></tr>
-<tr><td>nodes</td><td>required if <code>service_name</code> and 
<code>k8s_deployment_info</code> not configured</td><td>Hash table, the key of 
the internal element is the upstream machine address list, the format is 
<code>Address + Port</code>, where the address part can be IP or domain name, 
such as <code>192.168.1.100:80</code>, <code>foo.com:80</code>, etc. Value is 
the weight of the node. In particular, when the weight value is <code>0</code>, 
it has a special meaning, which usually  [...]
-<tr><td>service_name</td><td>required if <code>nodes</code> and 
<code>k8s_deployment_info</code> not configured</td><td>The name of the 
upstream service and used with the registry, refer to <a 
href="/apisix/discovery">Integration service discovery registry</a>.</td></tr>
-<tr><td>k8s_deployment_info</td><td>required if <code>nodes</code> and 
<code>service_name</code> not configured</td><td>fields: 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,
 <code>port</code> is number, <code>backend_type</code> is <code>pod</code> or 
<code>service</code>, others is string.</td></tr>
-<tr><td>hash_on</td><td>optional</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Supported types 
<code>vars</code>(Nginx variables), <code>header</code>(custom header), 
<code>cookie</code>, <code>consumer</code>, the default value is 
<code>vars</code>.</td></tr>
-<tr><td>key</td><td>required</td><td>This option is only valid if the 
<code>type</code> is <code>chash</code>. Find the corresponding node 
<code>id</code> according to <code>hash_on</code> and <code>key</code>. When 
<code>hash_on</code> is set as <code>vars</code>, <code>key</code> is the 
required parameter, for now, it support nginx built-in variables like 
<code>uri, server_name, server_addr, request_uri, remote_port, remote_addr, 
query_string, host, hostname, arg_***</code>, <code>arg_ [...]
-<tr><td>checks</td><td>optional</td><td>Configure the parameters of the health 
check. For details, refer to <a 
href="/apisix/health-check">health-check</a>.</td></tr>
-<tr><td>retries</td><td>optional</td><td>Pass the request to the next upstream 
using the underlying Nginx retry mechanism, the retry mechanism is enabled by 
default and set the number of retries according to the number of backend nodes. 
If <code>retries</code> option is explicitly set, it will override the default 
value.</td></tr>
-<tr><td>timeout</td><td>optional</td><td>Set the timeout for connection, 
sending and receiving messages.</td></tr>
-<tr><td>desc</td><td>optional</td><td>Identifies route names, usage scenarios, 
and more.</td></tr>
-<tr><td>labels</td><td>optional</td><td>The key/value pairs to specify 
attributes.</td></tr>
-<tr><td>pass_host</td><td>optional</td><td><code>pass</code> pass the client 
request host, <code>node</code> not pass the client request host, using the 
upstream node host, <code>rewrite</code> rewrite host by the configured 
<code>upstream_host</code>.</td></tr>
-<tr><td>upstream_host</td><td>optional</td><td>This option is only valid if 
the <code>pass_host</code> is <code>rewrite</code>.</td></tr>
-</tbody>
-</table>
+<p>In addition to the basic complex equalization algorithm selection, APISIX's 
Upstream also supports logic for upstream passive health check and retry, see 
the link below.</p>
+<p><a 
href="https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream";>https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream</a></p>
 <p>Create an upstream object use case:</p>
 <pre><code class="hljs css language-json">curl 
http://127.0.0.1:9080/apisix/admin/upstreams/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
-    "type": "roundrobin",
-    "k8s_deployment_info": {
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",
-        "port": 8080
-    }
-}'
-
-curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
-{
     "type": "chash",
     "key": "remote_addr",
     "nodes": {
@@ -243,7 +212,7 @@ curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 
'X-API-KEY: edd1c9f034335
 <pre><code class="hljs css language-shell">curl 
http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
     "uri": "/index.html",
-    "upstream_id": 2
+    "upstream_id": 1
 }'
 </code></pre>
 <p>For convenience, you can also directly bind the upstream address to a 
<code>Route</code> or <code>Service</code>, for example:</p>
diff --git a/apisix/control-api.html b/apisix/control-api.html
index da14bde..84a686d 100644
--- a/apisix/control-api.html
+++ b/apisix/control-api.html
@@ -44,7 +44,33 @@ If a plugin adds such a control API, please refer to each 
plugin's documentation
 <p>Here is the supported API:</p>
 <h3><a class="anchor" aria-hidden="true" id="get-v1schema"></a><a 
href="#get-v1schema" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>Introduced since <code>v2.2</code>.</p>
-<p>Return the jsonschema used by this APISIX instance.</p>
+<p>Return the jsonschema used by this APISIX instance in the format below:</p>
+<pre><code class="hljs css language-json">{
+    "main": {
+        "route": {
+            "properties": {...}
+        },
+        "upstream": {
+            "properties": {...}
+        },
+        ...
+    },
+    "plugins": {
+        "example-plugin": {
+            "consumer_schema": {...},
+            "metadata_schema": {...},
+            "schema": {...},
+            "type": ...,
+            "priority": 0,
+            "version": 0.1
+        },
+        ...
+    }
+}
+</code></pre>
+<p>For <code>plugins</code> part, only enabled plugins will be returned. Some 
plugins may lack
+of fields like <code>consumer_schema</code> or <code>type</code>, it is 
dependended by the plugin's
+definition.</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#control-api-added-via-plugin">Control API Added via 
plugin</a></li><li><a href="#plugin-independent-control-api">Plugin independent 
Control API</a><ul class="toc-headings"><li><a href="#get-v1schema">GET 
/v1/schema</a></li></ul></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" class="nav-home"></a><div><h5> 
[...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/apisix/control-api/index.html b/apisix/control-api/index.html
index da14bde..84a686d 100644
--- a/apisix/control-api/index.html
+++ b/apisix/control-api/index.html
@@ -44,7 +44,33 @@ If a plugin adds such a control API, please refer to each 
plugin's documentation
 <p>Here is the supported API:</p>
 <h3><a class="anchor" aria-hidden="true" id="get-v1schema"></a><a 
href="#get-v1schema" aria-hidden="true" class="hash-link"><svg 
class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 
0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 
0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 
3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 
9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>Introduced since <code>v2.2</code>.</p>
-<p>Return the jsonschema used by this APISIX instance.</p>
+<p>Return the jsonschema used by this APISIX instance in the format below:</p>
+<pre><code class="hljs css language-json">{
+    "main": {
+        "route": {
+            "properties": {...}
+        },
+        "upstream": {
+            "properties": {...}
+        },
+        ...
+    },
+    "plugins": {
+        "example-plugin": {
+            "consumer_schema": {...},
+            "metadata_schema": {...},
+            "schema": {...},
+            "type": ...,
+            "priority": 0,
+            "version": 0.1
+        },
+        ...
+    }
+}
+</code></pre>
+<p>For <code>plugins</code> part, only enabled plugins will be returned. Some 
plugins may lack
+of fields like <code>consumer_schema</code> or <code>type</code>, it is 
dependended by the plugin's
+definition.</p>
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav 
class="onPageNav"><ul class="toc-headings"><li><a 
href="#control-api-added-via-plugin">Control API Added via 
plugin</a></li><li><a href="#plugin-independent-control-api">Plugin independent 
Control API</a><ul class="toc-headings"><li><a href="#get-v1schema">GET 
/v1/schema</a></li></ul></li></ul></nav></div><footer class="nav-footer" 
id="footer"><section class="sitemap"><a href="/" class="nav-home"></a><div><h5> 
[...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/apisix/zh-cn/admin-api.html b/apisix/zh-cn/admin-api.html
index 575081d..80548b0 100644
--- a/apisix/zh-cn/admin-api.html
+++ b/apisix/zh-cn/admin-api.html
@@ -528,14 +528,13 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><th>名字</th><th>可选项</th><th>类型</th><th>说明</th><th>示例</th></tr>
 </thead>
 <tbody>
-<tr><td>nodes</td><td>与 <code>k8s_deployment_info</code> 
二选一</td><td>Node</td><td>哈希表,内部元素的 key 是上游机器地址列表,格式为<code>地址 + 
Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code>等。value 则是节点的权重,特别的,当权重值为 
<code>0</code> 有特殊含义,通常代表该上游节点失效,永远不希望被选中。<code>nodes</code> 
可以为空,这通常用作占位符。客户端命中这样的上游会返回 502。</td><td><code>192.168.1.100:80</code></td></tr>
-<tr><td>k8s_deployment_info</td><td>与 <code>nodes</code> 
二选一</td><td>哈希表</td><td>字段包括 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,其中
 <code>port</code> 字段为数值,<code>backend_type</code> 为 <code>pod</code> 或 
<code>service</code>,其他为字符串</td><td><code>{&quot;namespace&quot;: 
&quot;test-namespace&quot;, &quot;deploy_name&quot;: 
&quot;test-deploy-name&quot;, &quot;service_name&quot;: 
&quot;test-service-name&quot;, &quot;ba [...]
+<tr><td>nodes</td><td>必需</td><td>Node</td><td>哈希表,内部元素的 key 
是上游机器地址列表,格式为<code>地址 + Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code>等。value 则是节点的权重,特别的,当权重值为 
<code>0</code> 有特殊含义,通常代表该上游节点失效,永远不希望被选中。<code>nodes</code> 
可以为空,这通常用作占位符。客户端命中这样的上游会返回 502。</td><td><code>192.168.1.100:80</code></td></tr>
 <tr><td>type</td><td>必需</td><td>枚举</td><td><code>roundrobin</code> 
支持权重的负载,<code>chash</code> 
一致性哈希,两者是二选一的</td><td><code>roundrobin</code></td><td></td></tr>
 <tr><td>key</td><td>条件必需</td><td>匹配类型</td><td>该选项只有类型是 <code>chash</code> 
才有效。根据 <code>key</code> 来查找对应的 node <code>id</code>,相同的 <code>key</code> 
在同一个对象中,永远返回相同 id,目前支持的 Nginx 内置变量有 <code>uri, server_name, server_addr, 
request_uri, remote_port, remote_addr, query_string, host, hostname, 
arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></td><td></td></tr>
 <tr><td>checks</td><td>可选</td><td>health_checker</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td><td></td></tr>
 <tr><td>retries</td><td>可选</td><td>整型</td><td>使用底层的 Nginx 
重试机制将请求传递给下一个上游,默认启用重试且次数为后端 node 数量。如果指定了具体重试次数,它将覆盖默认值。<code>0</code> 
代表不启用重试机制</td><td></td></tr>
 
<tr><td>timeout</td><td>可选</td><td>超时时间对象</td><td>设置连接、发送消息、接收消息的超时时间</td><td></td></tr>
-<tr><td>hash_on</td><td>可选</td><td>辅助</td><td>该参数作为一致性 hash 
的入参</td><td></td></tr>
+<tr><td>hash_on</td><td>可选</td><td>辅助</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识上游服务名称、使用场景等。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>上游服务描述、使用场景等。</td><td></td></tr>
 <tr><td>pass_host</td><td>可选</td><td>枚举</td><td><code>pass</code> 透传客户端请求的 
host, <code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 
。</td><td></td></tr>
@@ -545,6 +544,14 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>update_time</td><td>可选</td><td>辅助</td><td>单位为秒的 epoch 
时间戳,如果不指定则自动创建</td><td>1602883670</td></tr>
 </tbody>
 </table>
+<p><code>hash_on</code> 比较复杂,这里专门说明下:</p>
+<ol>
+<li>设为 <code>vars</code> 时,<code>key</code> 为必传参数,目前支持的 Nginx 内置变量有 <code>uri, 
server_name, server_addr, request_uri, remote_port, remote_addr, query_string, 
host, hostname, arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></li>
+<li>设为 <code>header</code> 时, <code>key</code> 为必传参数,其值为自定义的 header name, 即 
&quot;http_<code>key</code>&quot;</li>
+<li>设为 <code>cookie</code> 时, <code>key</code> 为必传参数,其值为自定义的 cookie name,即 
&quot;cookie_<code>key</code>&quot;</li>
+<li>设为 <code>consumer</code> 时,<code>key</code> 不需要设置。此时哈希算法采用的 
<code>key</code> 为认证通过的 <code>consumer_name</code>。</li>
+<li>如果指定的 <code>hash_on</code> 和 <code>key</code> 
获取不到值时,就是用默认值:<code>remote_addr</code>。</li>
+</ol>
 <p>upstream 对象 json 配置内容:</p>
 <pre><code class="hljs css language-shell">{
     "id": "1",                  # id
@@ -555,13 +562,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "read":15,
     },
     "nodes": {"host:80": 100},  # 上游机器地址列表,格式为`地址 + Port`
-    "k8s_deployment_info": {    # k8s deployment 信息
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",   # pod or service
-        "port": 8080
-    },
     "type":"roundrobin",        # chash or roundrobin
     "checks": {},               # 配置健康检查的参数
     "hash_on": "",
diff --git a/apisix/zh-cn/admin-api/index.html 
b/apisix/zh-cn/admin-api/index.html
index 575081d..80548b0 100644
--- a/apisix/zh-cn/admin-api/index.html
+++ b/apisix/zh-cn/admin-api/index.html
@@ -528,14 +528,13 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><th>名字</th><th>可选项</th><th>类型</th><th>说明</th><th>示例</th></tr>
 </thead>
 <tbody>
-<tr><td>nodes</td><td>与 <code>k8s_deployment_info</code> 
二选一</td><td>Node</td><td>哈希表,内部元素的 key 是上游机器地址列表,格式为<code>地址 + 
Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code>等。value 则是节点的权重,特别的,当权重值为 
<code>0</code> 有特殊含义,通常代表该上游节点失效,永远不希望被选中。<code>nodes</code> 
可以为空,这通常用作占位符。客户端命中这样的上游会返回 502。</td><td><code>192.168.1.100:80</code></td></tr>
-<tr><td>k8s_deployment_info</td><td>与 <code>nodes</code> 
二选一</td><td>哈希表</td><td>字段包括 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,其中
 <code>port</code> 字段为数值,<code>backend_type</code> 为 <code>pod</code> 或 
<code>service</code>,其他为字符串</td><td><code>{&quot;namespace&quot;: 
&quot;test-namespace&quot;, &quot;deploy_name&quot;: 
&quot;test-deploy-name&quot;, &quot;service_name&quot;: 
&quot;test-service-name&quot;, &quot;ba [...]
+<tr><td>nodes</td><td>必需</td><td>Node</td><td>哈希表,内部元素的 key 
是上游机器地址列表,格式为<code>地址 + Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code>等。value 则是节点的权重,特别的,当权重值为 
<code>0</code> 有特殊含义,通常代表该上游节点失效,永远不希望被选中。<code>nodes</code> 
可以为空,这通常用作占位符。客户端命中这样的上游会返回 502。</td><td><code>192.168.1.100:80</code></td></tr>
 <tr><td>type</td><td>必需</td><td>枚举</td><td><code>roundrobin</code> 
支持权重的负载,<code>chash</code> 
一致性哈希,两者是二选一的</td><td><code>roundrobin</code></td><td></td></tr>
 <tr><td>key</td><td>条件必需</td><td>匹配类型</td><td>该选项只有类型是 <code>chash</code> 
才有效。根据 <code>key</code> 来查找对应的 node <code>id</code>,相同的 <code>key</code> 
在同一个对象中,永远返回相同 id,目前支持的 Nginx 内置变量有 <code>uri, server_name, server_addr, 
request_uri, remote_port, remote_addr, query_string, host, hostname, 
arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></td><td></td></tr>
 <tr><td>checks</td><td>可选</td><td>health_checker</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td><td></td></tr>
 <tr><td>retries</td><td>可选</td><td>整型</td><td>使用底层的 Nginx 
重试机制将请求传递给下一个上游,默认启用重试且次数为后端 node 数量。如果指定了具体重试次数,它将覆盖默认值。<code>0</code> 
代表不启用重试机制</td><td></td></tr>
 
<tr><td>timeout</td><td>可选</td><td>超时时间对象</td><td>设置连接、发送消息、接收消息的超时时间</td><td></td></tr>
-<tr><td>hash_on</td><td>可选</td><td>辅助</td><td>该参数作为一致性 hash 
的入参</td><td></td></tr>
+<tr><td>hash_on</td><td>可选</td><td>辅助</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
 <tr><td>name</td><td>可选</td><td>辅助</td><td>标识上游服务名称、使用场景等。</td><td></td></tr>
 <tr><td>desc</td><td>可选</td><td>辅助</td><td>上游服务描述、使用场景等。</td><td></td></tr>
 <tr><td>pass_host</td><td>可选</td><td>枚举</td><td><code>pass</code> 透传客户端请求的 
host, <code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 
。</td><td></td></tr>
@@ -545,6 +544,14 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
 <tr><td>update_time</td><td>可选</td><td>辅助</td><td>单位为秒的 epoch 
时间戳,如果不指定则自动创建</td><td>1602883670</td></tr>
 </tbody>
 </table>
+<p><code>hash_on</code> 比较复杂,这里专门说明下:</p>
+<ol>
+<li>设为 <code>vars</code> 时,<code>key</code> 为必传参数,目前支持的 Nginx 内置变量有 <code>uri, 
server_name, server_addr, request_uri, remote_port, remote_addr, query_string, 
host, hostname, arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></li>
+<li>设为 <code>header</code> 时, <code>key</code> 为必传参数,其值为自定义的 header name, 即 
&quot;http_<code>key</code>&quot;</li>
+<li>设为 <code>cookie</code> 时, <code>key</code> 为必传参数,其值为自定义的 cookie name,即 
&quot;cookie_<code>key</code>&quot;</li>
+<li>设为 <code>consumer</code> 时,<code>key</code> 不需要设置。此时哈希算法采用的 
<code>key</code> 为认证通过的 <code>consumer_name</code>。</li>
+<li>如果指定的 <code>hash_on</code> 和 <code>key</code> 
获取不到值时,就是用默认值:<code>remote_addr</code>。</li>
+</ol>
 <p>upstream 对象 json 配置内容:</p>
 <pre><code class="hljs css language-shell">{
     "id": "1",                  # id
@@ -555,13 +562,6 @@ Date: Thu, 26 Dec 2019 08:17:49 GMT
         "read":15,
     },
     "nodes": {"host:80": 100},  # 上游机器地址列表,格式为`地址 + Port`
-    "k8s_deployment_info": {    # k8s deployment 信息
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",   # pod or service
-        "port": 8080
-    },
     "type":"roundrobin",        # chash or roundrobin
     "checks": {},               # 配置健康检查的参数
     "hash_on": "",
diff --git a/apisix/zh-cn/architecture-design.html 
b/apisix/zh-cn/architecture-design.html
index 3abb0c8..5592f2d 100644
--- a/apisix/zh-cn/architecture-design.html
+++ b/apisix/zh-cn/architecture-design.html
@@ -207,48 +207,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <p>Upstream 的配置可以被直接绑定在指定 <code>Route</code> 中,也可以被绑定在 <code>Service</code> 
中,不过 <code>Route</code> 中的配置
 优先级更高。这里的优先级行为与 <code>Plugin</code> 非常相似</p>
 <h3><a class="anchor" aria-hidden="true" id="配置参数"></a><a href="#配置参数" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
-<p>APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上游做主被动健康检查、重试等逻辑,具体看下面表格。</p>
-<table>
-<thead>
-<tr><th>名字</th><th>可选</th><th>说明</th></tr>
-</thead>
-<tbody>
-<tr><td>type</td><td>必填</td><td><code>roundrobin</code> 
支持权重的负载,<code>chash</code> 一致性哈希,两者是二选一的</td></tr>
-<tr><td>nodes</td><td>与 <code>k8s_deployment_info</code>、 
<code>service_name</code> 三选一</td><td>哈希表,内部元素的 key 是上游机器地址列表,格式为<code>地址 + 
Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code> 等。value 则是节点的权重。当权重值为 
<code>0</code> 代表该上游节点失效,不会被选中,可以用于暂时摘除节点的情况。</td></tr>
-<tr><td>service_name</td><td>与 <code>nodes</code>、 
<code>k8s_deployment_info</code> 三选一</td><td>用于设置上游服务名,并配合注册中心使用,详细可参考<a 
href="/apisix/zh-cn/discovery">集成服务发现注册中心</a></td></tr>
-<tr><td>k8s_deployment_info</td><td>与 <code>nodes</code>、 
<code>service_name</code> 三选一</td><td>哈希表</td><td>字段包括 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,其中
 <code>port</code> 字段为数值,<code>backend_type</code> 为 <code>pod</code> 或 
<code>service</code>,其他为字符串</td></tr>
-<tr><td>key</td><td>可选</td><td>在 <code>type</code> 等于 <code>chash</code> 是必选项。 
<code>key</code> 需要配合 <code>hash_on</code> 来使用,通过 <code>hash_on</code> 和 
<code>key</code> 来查找对应的 node <code>id</code></td></tr>
-<tr><td>hash_on</td><td>可选</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
-<tr><td>checks</td><td>可选</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td></tr>
-<tr><td>retries</td><td>可选</td><td>使用底层的 Nginx 重试机制将请求传递给下一个上游,默认 APISIX 
会启用重试机制,根据配置的后端节点个数设置重试次数,如果此参数显式被设置将会覆盖系统默认设置的重试次数。</td></tr>
-<tr><td>labels</td><td>可选</td><td>用于标识属性的键值对。</td></tr>
-<tr><td>pass_host</td><td>可选</td><td><code>pass</code> 透传客户端请求的 host, 
<code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 。</td></tr>
-<tr><td>upstream_host</td><td>可选</td><td>只在 <code>pass_host</code> 配置为 
<code>rewrite</code> 时有效。</td></tr>
-</tbody>
-</table>
-<p><code>hash_on</code> 比较复杂,这里专门说明下:</p>
-<ol>
-<li>设为 <code>vars</code> 时,<code>key</code> 为必传参数,目前支持的 Nginx 内置变量有 <code>uri, 
server_name, server_addr, request_uri, remote_port, remote_addr, query_string, 
host, hostname, arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></li>
-<li>设为 <code>header</code> 时, <code>key</code> 为必传参数,其值为自定义的 header name, 即 
&quot;http_<code>key</code>&quot;</li>
-<li>设为 <code>cookie</code> 时, <code>key</code> 为必传参数,其值为自定义的 cookie name,即 
&quot;cookie_<code>key</code>&quot;</li>
-<li>设为 <code>consumer</code> 时,<code>key</code> 不需要设置。此时哈希算法采用的 
<code>key</code> 为认证通过的 <code>consumer_name</code>。</li>
-<li>如果指定的 <code>hash_on</code> 和 <code>key</code> 
获取不到值时,就是用默认值:<code>remote_addr</code>。</li>
-</ol>
+<p>APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上游做主被动健康检查、重试等逻辑,具体看下面的链接。</p>
+<p><a 
href="https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream";>https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream</a></p>
 <p>创建上游对象用例:</p>
 <pre><code class="hljs css language-json">curl 
http://127.0.0.1:9080/apisix/admin/upstreams/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
-    "type": "roundrobin",
-    "k8s_deployment_info": {
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",
-        "port": 8080
-    }
-}'
-
-curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
-{
     "type": "chash",
     "key": "remote_addr",
     "nodes": {
diff --git a/apisix/zh-cn/architecture-design/index.html 
b/apisix/zh-cn/architecture-design/index.html
index 3abb0c8..5592f2d 100644
--- a/apisix/zh-cn/architecture-design/index.html
+++ b/apisix/zh-cn/architecture-design/index.html
@@ -207,48 +207,11 @@ curl http://127.0.0.1:9080/apisix/admin/routes/101 -H 
'X-API-KEY: edd1c9f034335f
 <p>Upstream 的配置可以被直接绑定在指定 <code>Route</code> 中,也可以被绑定在 <code>Service</code> 
中,不过 <code>Route</code> 中的配置
 优先级更高。这里的优先级行为与 <code>Plugin</code> 非常相似</p>
 <h3><a class="anchor" aria-hidden="true" id="配置参数"></a><a href="#配置参数" 
aria-hidden="true" class="hash-link"><svg class="hash-link-icon" 
aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" 
width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 
3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 
5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 
2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
-<p>APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上游做主被动健康检查、重试等逻辑,具体看下面表格。</p>
-<table>
-<thead>
-<tr><th>名字</th><th>可选</th><th>说明</th></tr>
-</thead>
-<tbody>
-<tr><td>type</td><td>必填</td><td><code>roundrobin</code> 
支持权重的负载,<code>chash</code> 一致性哈希,两者是二选一的</td></tr>
-<tr><td>nodes</td><td>与 <code>k8s_deployment_info</code>、 
<code>service_name</code> 三选一</td><td>哈希表,内部元素的 key 是上游机器地址列表,格式为<code>地址 + 
Port</code>,其中地址部分可以是 IP 也可以是域名,比如 
<code>192.168.1.100:80</code>、<code>foo.com:80</code> 等。value 则是节点的权重。当权重值为 
<code>0</code> 代表该上游节点失效,不会被选中,可以用于暂时摘除节点的情况。</td></tr>
-<tr><td>service_name</td><td>与 <code>nodes</code>、 
<code>k8s_deployment_info</code> 三选一</td><td>用于设置上游服务名,并配合注册中心使用,详细可参考<a 
href="/apisix/zh-cn/discovery">集成服务发现注册中心</a></td></tr>
-<tr><td>k8s_deployment_info</td><td>与 <code>nodes</code>、 
<code>service_name</code> 三选一</td><td>哈希表</td><td>字段包括 
<code>namespace</code>、<code>deploy_name</code>、<code>service_name</code>、<code>port</code>、<code>backend_type</code>,其中
 <code>port</code> 字段为数值,<code>backend_type</code> 为 <code>pod</code> 或 
<code>service</code>,其他为字符串</td></tr>
-<tr><td>key</td><td>可选</td><td>在 <code>type</code> 等于 <code>chash</code> 是必选项。 
<code>key</code> 需要配合 <code>hash_on</code> 来使用,通过 <code>hash_on</code> 和 
<code>key</code> 来查找对应的 node <code>id</code></td></tr>
-<tr><td>hash_on</td><td>可选</td><td><code>hash_on</code> 支持的类型有 
<code>vars</code>(Nginx内置变量),<code>header</code>(自定义header),<code>cookie</code>,<code>consumer</code>,默认值为
 <code>vars</code></td></tr>
-<tr><td>checks</td><td>可选</td><td>配置健康检查的参数,详细可参考<a 
href="/apisix/health-check">health-check</a></td></tr>
-<tr><td>retries</td><td>可选</td><td>使用底层的 Nginx 重试机制将请求传递给下一个上游,默认 APISIX 
会启用重试机制,根据配置的后端节点个数设置重试次数,如果此参数显式被设置将会覆盖系统默认设置的重试次数。</td></tr>
-<tr><td>labels</td><td>可选</td><td>用于标识属性的键值对。</td></tr>
-<tr><td>pass_host</td><td>可选</td><td><code>pass</code> 透传客户端请求的 host, 
<code>node</code> 不透传客户端请求的 host, 使用 upstream node 配置的 host, 
<code>rewrite</code> 使用 <code>upstream_host</code> 配置的值重写 host 。</td></tr>
-<tr><td>upstream_host</td><td>可选</td><td>只在 <code>pass_host</code> 配置为 
<code>rewrite</code> 时有效。</td></tr>
-</tbody>
-</table>
-<p><code>hash_on</code> 比较复杂,这里专门说明下:</p>
-<ol>
-<li>设为 <code>vars</code> 时,<code>key</code> 为必传参数,目前支持的 Nginx 内置变量有 <code>uri, 
server_name, server_addr, request_uri, remote_port, remote_addr, query_string, 
host, hostname, arg_***</code>,其中 <code>arg_***</code> 是来自URL的请求参数,<a 
href="http://nginx.org/en/docs/varindex.html";>Nginx 变量列表</a></li>
-<li>设为 <code>header</code> 时, <code>key</code> 为必传参数,其值为自定义的 header name, 即 
&quot;http_<code>key</code>&quot;</li>
-<li>设为 <code>cookie</code> 时, <code>key</code> 为必传参数,其值为自定义的 cookie name,即 
&quot;cookie_<code>key</code>&quot;</li>
-<li>设为 <code>consumer</code> 时,<code>key</code> 不需要设置。此时哈希算法采用的 
<code>key</code> 为认证通过的 <code>consumer_name</code>。</li>
-<li>如果指定的 <code>hash_on</code> 和 <code>key</code> 
获取不到值时,就是用默认值:<code>remote_addr</code>。</li>
-</ol>
+<p>APISIX 的 Upstream 除了基本的复杂均衡算法选择外,还支持对上游做主被动健康检查、重试等逻辑,具体看下面的链接。</p>
+<p><a 
href="https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream";>https://github.com/apache/apisix/blob/master/doc/admin-api.md#upstream</a></p>
 <p>创建上游对象用例:</p>
 <pre><code class="hljs css language-json">curl 
http://127.0.0.1:9080/apisix/admin/upstreams/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
 {
-    "type": "roundrobin",
-    "k8s_deployment_info": {
-        "namespace": "test-namespace",
-        "deploy_name": "test-deploy-name",
-        "service_name": "test-service-name",
-        "backend_type": "pod",
-        "port": 8080
-    }
-}'
-
-curl http://127.0.0.1:9080/apisix/admin/upstreams/2 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
-{
     "type": "chash",
     "key": "remote_addr",
     "nodes": {

Reply via email to