From 1292fa5b6219b4b72f20d3eb463bcbdefe6ba5c5 Mon Sep 17 00:00:00 2001 From: Reto Lehmann Date: Tue, 6 Jun 2023 16:36:27 +0200 Subject: [PATCH] Add Knative Serving architecture page (#5545) * Add Knative Serving architecture page * Reorder and cross-link architecture and request-flow pages * Review feedback * Update docs/serving/architecture.md Co-authored-by: Evan Anderson * Update docs/serving/architecture.md Co-authored-by: Evan Anderson * Review updates * Review updates --------- Co-authored-by: Evan Anderson --- config/nav.yml | 6 ++- docs/install/README.md | 3 ++ docs/serving/architecture.md | 51 ++++++++++++++++++ .../{reference => images}/request-flow.png | Bin .../images/serving-architecture-ingress.png | Bin 0 -> 44187 bytes docs/serving/images/serving-architecture.png | Bin 0 -> 77358 bytes docs/serving/{reference => }/request-flow.md | 13 ++--- 7 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 docs/serving/architecture.md rename docs/serving/{reference => images}/request-flow.png (100%) create mode 100644 docs/serving/images/serving-architecture-ingress.png create mode 100644 docs/serving/images/serving-architecture.png rename docs/serving/{reference => }/request-flow.md (91%) diff --git a/config/nav.yml b/config/nav.yml index 1dbd9f913..aa52e2c9a 100644 --- a/config/nav.yml +++ b/config/nav.yml @@ -95,7 +95,10 @@ nav: # Serving ############################################################################### - Serving: - - Knative Serving overview: serving/README.md + - Knative Serving: + - Overview: serving/README.md + - Architecture: serving/architecture.md + - Request Flow: serving/request-flow.md - Resources: - Revisions: - About Revisions: serving/revisions/README.md @@ -173,7 +176,6 @@ nav: - Debugging application issues: serving/troubleshooting/debugging-application-issues.md # Serving reference docs - Reference: - - Request Flow: serving/reference/request-flow.md - Serving API: serving/reference/serving-api.md ############################################################################### # Eventing diff --git a/docs/install/README.md b/docs/install/README.md index c4addafb8..8f051e86f 100644 --- a/docs/install/README.md +++ b/docs/install/README.md @@ -1,5 +1,8 @@ # Installing Knative +!!! note + Please also take a look at the [Serving Architecture](../serving/architecture.md), which explains the Knative components and the general networking concept. + You can install the Serving component, Eventing component, or both on your cluster by using one of the following deployment options: diff --git a/docs/serving/architecture.md b/docs/serving/architecture.md new file mode 100644 index 000000000..71f3bd7a8 --- /dev/null +++ b/docs/serving/architecture.md @@ -0,0 +1,51 @@ +# Knative Serving Architecture + +Knative Serving consists of several components forming the backbone of the Serverless Platform. +This page explains the high-level architecture of Knative Serving. Please also refer to [the Knative Serving Overview](./README.md) +and [the Request Flow](./request-flow.md) for additional information. + +## Diagram + +![Knative Serving Architecture](images/serving-architecture.png) + +## Components + +| Component | Responsibilities | +|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Activator | The activator is part of the **data-plane**. It is responsible to queue incoming requests (if a `Knative Service` is scaled-to-zero). It communicates with the autoscaler to bring scaled-to-zero Services back up and forward the queued requests. Activator can also act as a request buffer to handle traffic bursts. Additional details can be found [here](https://github.com/knative/serving/blob/main/docs/scaling/SYSTEM.md). | +| Autoscaler | The autoscaler is responsible to scale the Knative Services based on configuration, metrics and incoming requests. | +| Controller | The controller manages the state of Knative resources within the cluster. It watches several objects, manages the lifecycle of dependent resources, and updates the resource state. | +| Queue-Proxy | The Queue-Proxy is a sidecar container in the Knative Service's Pod. It is responsible to collect metrics and enforcing the desired concurrency when forwarding requests to the user's container. It can also act as a queue if necessary, similar to the Activator. | +| Webhooks | Knative Serving has several webhooks responsible to validate and mutate Knative Resources. | + +## Networking Layer and Ingress + +!!! note + `Ingress` in this case, does not refer to the [Kubernetes Ingress Resource](https://kubernetes.io/docs/concepts/services-networking/ingress/). It refers to the concept of exposing external access to a resource on the cluster. + +Knative Serving depends on a `Networking Layer` that fulfils the [Knative Networking Specification](https://github.com/knative/networking). +For this, Knative Serving defines an internal `KIngress` resource, which acts as an abstraction for different multiple pluggable networking layers. Currently, three networking layers are available and supported by the community: + +* [net-kourier](https://github.com/knative-sandbox/net-kourier) +* [net-contour](https://github.com/knative-sandbox/net-contour) +* [net-istio](https://github.com/knative-sandbox/net-istio) + + +## Traffic flow and DNS + +!!! note + There are fine differences between the different networking layers, the following section describes the general concept. Also, there are multiple ways to expose your `Ingress Gateway` and configure DNS. Please refer the installation documentation for more information. + +![Knative Serving Architecture Ingress](images/serving-architecture-ingress.png) + +* Each networking layer has a controller that is responsible to watch the `KIngress` resources and configure the `Ingress Gateway` accordingly. It will also report back `status` information through this resource. +* The `Ingress Gateway` is used to route requests to the `activator` or directly to a Knative Service Pod, depending on the mode (proxy/serve, see [here](https://github.com/knative/serving/blob/main/docs/scaling/SYSTEM.md) for more details). The `Ingress Gateway` is handling requests from inside the cluster and from outside the cluster. +* For the `Ingress Gateway` to be reachable outside the cluster, it must be [exposed](https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/) using a Kubernetes Service of `type: LoadBalancer` or `type: NodePort`. The community supported networking layers include this as part of the installation. Then [DNS](../install/yaml-install/serving/install-serving-with-yaml.md#configure-dns) is configured to point to the `IP` or `Name` of the `Ingress Gateway` + +!!! note + Please note, if you do use/set DNS, you should also set the [same domain](./using-a-custom-domain.md) for Knative. + + +## Autoscaling + +You can find more detailed information on our autoscaling mechanism [here](https://github.com/knative/serving/tree/main/docs/scaling). diff --git a/docs/serving/reference/request-flow.png b/docs/serving/images/request-flow.png similarity index 100% rename from docs/serving/reference/request-flow.png rename to docs/serving/images/request-flow.png diff --git a/docs/serving/images/serving-architecture-ingress.png b/docs/serving/images/serving-architecture-ingress.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa4a1120c184d1c2acbb82b5d3795ba289f3bd1 GIT binary patch literal 44187 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 literal 0 HcmV?d00001 diff --git a/docs/serving/reference/request-flow.md b/docs/serving/request-flow.md similarity index 91% rename from docs/serving/reference/request-flow.md rename to docs/serving/request-flow.md index 36495d95c..d1ce3e0f7 100644 --- a/docs/serving/reference/request-flow.md +++ b/docs/serving/request-flow.md @@ -1,12 +1,13 @@ # HTTP Request Flows -While [the overview](/docs/serving) describes the logical components of Knative +While [the overview](/docs/serving) describes the logical components and +[the architecture](./architecture.md) describes the over all architecture of Knative Serving, this page explains the behavior and flow of HTTP requests to an application which is running on Knative Serving. The following diagram shows the different request flows and control plane loops for Knative Serving. Note that some components, such as the autoscaler and the apiserver are not updated on every request, but instead measure the system periodically (this is referred to as the control plane). -![Diagram of Knative request flow through HTTP router to optional Activator, then queue-proxy and user container](./request-flow.png) +![Diagram of Knative request flow through HTTP router to optional Activator, then queue-proxy and user container](images/request-flow.png) The HTTP router, activator, and autoscaler are all shared cluster-level @@ -19,7 +20,7 @@ pluggable ingress layer), and are recorded on the request in an internal header. Once a request has been assigned to a Revision, the subsequent routing depends on the measured traffic flow; at low or zero traffic, incoming requests are routed to the activator, while at high traffic levels ([spare capacity greater -than `target-burst-capacity`](../../load-balancing/target-burst-capacity)) +than `target-burst-capacity`](./load-balancing/target-burst-capacity.md)) traffic is routed directly to the application pods. ## Scale From Zero @@ -33,7 +34,7 @@ additional capacity is needed. When the autoscaler detects that the available capacity for a Revision is below the requested capacity, it [increases the number of pods requested from -Kubernetes](../../autoscaling/autoscale-go#algorithm). +Kubernetes](./autoscaling/autoscale-go/README.md#algorithm). When these new pods become ready or an existing pod has capacity, the activator will forward the delayed request to a ready pod. If a new pod needs to be @@ -42,7 +43,7 @@ started to handle a request, this is called a _cold-start_. ## High scale When a Revision has a high amount of traffic ([the spare capacity is greater -than `target-burst-capacity`](../../load-balancing/target-burst-capacity)), the +than `target-burst-capacity`](./load-balancing/target-burst-capacity.md)), the ingress router is programmed directly with the pod adresses of the Revision, and the activator is removed from the traffic flow. This reduces latency and increases efficiency when the additional buffering of the activator is not @@ -78,7 +79,7 @@ reliability and scaling of Knative: activator is removed from the request path. * Implements the [`containerConcurrency` hard limit on request - concurrency](https://knative.dev/docs/serving/autoscaling/concurrency/#hard-limit) + concurrency](./autoscaling/concurrency.md#hard-limit) if requested. * Handles graceful shutdown on Pod termination (refuse new requests, fail