From fb8b3d63b23b70109fc3bef0cd534279e80083a7 Mon Sep 17 00:00:00 2001 From: Jeff Boruszak <104028618+boruszak@users.noreply.github.com> Date: Mon, 28 Nov 2022 14:33:22 -0600 Subject: [PATCH] docs: Dataplane performance impact (#15566) * New image + performance considerations * Image related updates * Update website/content/docs/connect/dataplane/index.mdx Co-authored-by: David Yu Co-authored-by: David Yu --- website/content/docs/connect/dataplane/index.mdx | 15 +++++++++++++-- website/content/docs/k8s/architecture.mdx | 2 +- website/public/img/dataplanes-diagram.png | 3 --- .../public/img/k8s-dataplanes-architecture.png | 3 +++ 4 files changed, 17 insertions(+), 6 deletions(-) delete mode 100644 website/public/img/dataplanes-diagram.png create mode 100644 website/public/img/k8s-dataplanes-architecture.png diff --git a/website/content/docs/connect/dataplane/index.mdx b/website/content/docs/connect/dataplane/index.mdx index 55ad24e67..59395ab27 100644 --- a/website/content/docs/connect/dataplane/index.mdx +++ b/website/content/docs/connect/dataplane/index.mdx @@ -17,7 +17,18 @@ In standard deployments, Consul uses a control plane that contains both _server Consul Dataplane manages Envoy proxies and leaves responsibility for other functions to the orchestrator. As a result, it removes the need to run client agents on every pod. In addition, services no longer need to be reregistered to a local client agent after restarting a service instance, as a client agent’s lack of access to persistent data storage in Kubernetes deployments is no longer an issue. -![Diagram of Consul Dataplanes in Kubernetes deployment](/img/dataplanes-diagram.png) +![Diagram of Consul Dataplanes in Kubernetes deployment](/img/k8s-dataplanes-architecture.png) + +### Impact on performance + +The most significant differences between traditional deployments and Consul Dataplane deployments result from the removal of node-level client agents with gossip communication. They are replaced by _dataplanes_, which are the sidecars injected alongside each service instance that handle communication between Consul servers and Envoy proxies. + +Be aware of the following changes and their impact on your network's performance: + +1. Consul servers consume additional resources in order to generate xDS resources for Envoy proxies. In our internal load tests, performing at high scale and churn resulted in additional CPU utilization rates under 10% on the control plane. +1. As you deploy more services, the resource usage for dataplanes grows on a linear scale. +1. Envoy reconfigurations are rate limited to prevent excessive configuration changes from generating significant load on the servers. +1. The frequency of the orchestrator's liveness and readiness probes determine how quickly Consul's control plane can become aware of failures. There is no impact on service mesh applications, however, as Envoy proxies have a passive ability to detect endpoint failure and steer traffic to healthy instances. ## Benefits @@ -75,4 +86,4 @@ Consul Dataplane supports the following features: Be aware of the following limitations and recommendations for Consul Dataplane: -- Consul Dataplane is not supported on Windows. +- Consul Dataplane is not supported on Windows. \ No newline at end of file diff --git a/website/content/docs/k8s/architecture.mdx b/website/content/docs/k8s/architecture.mdx index dba414b73..395663c7e 100644 --- a/website/content/docs/k8s/architecture.mdx +++ b/website/content/docs/k8s/architecture.mdx @@ -41,7 +41,7 @@ so this must done manually when removing servers. By default, Consul on Kubernetes uses an alternate service mesh configuration that injects sidecars without client agents. _Consul Dataplane_ manages Envoy proxies and leaves responsibility for other functions to the orchestrator, which removes the need to run client agents on every pod. -![Diagram of Consul Dataplanes in Kubernetes deployment](/img/dataplanes-diagram.png) +![Diagram of Consul Dataplanes in Kubernetes deployment](/img/k8s-dataplanes-architecture.png) Refer to [Simplified Service Mesh with Consul Dataplanes](/docs/connect/dataplane/index) for more information. diff --git a/website/public/img/dataplanes-diagram.png b/website/public/img/dataplanes-diagram.png deleted file mode 100644 index a895033a5..000000000 --- a/website/public/img/dataplanes-diagram.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7e701feb22c95edfbaf17501167d6240a7de2e22a38e88131b400f4f93f2835 -size 170540 diff --git a/website/public/img/k8s-dataplanes-architecture.png b/website/public/img/k8s-dataplanes-architecture.png new file mode 100644 index 000000000..8dc18720d --- /dev/null +++ b/website/public/img/k8s-dataplanes-architecture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c04f0df06b868df9cfbe1476d64ff0673922ce9df9d2da2b70ec0305e4798337 +size 191246