Running serverless workloads on Kubernetes typically requires you to configure autoscaling policies, manage ingress routing, and build traffic-splitting logic from scratch. Service Mesh (ASM) integrates Knative Serving into your Container Service for Kubernetes (ACK) or ACK Serverless cluster so that you can deploy HTTP workloads that scale automatically -- including scaling to zero -- and run canary releases through the service mesh, without managing a separate ingress controller.
Capabilities
Knative is a Kubernetes-based serverless framework designed to develop a cloud-native and cross-platform container orchestration standard for serverless applications. It implements this standard by integrating the creation of containers (or functions), workload management (autoscaling), and event models. Knative also allows you to integrate and route services as well as perform canary releases by using Istio.
Knative on ASM provides the following capabilities:
| Capability | Description |
|---|---|
| Request-based autoscaling | Automatically scales pods based on incoming requests and Knative events. Scales to zero when no traffic is received. |
| Traffic-based canary releases | Splits traffic across multiple revisions of a Knative Service for progressive rollouts. |
| Unified ingress through ASM gateways | Routes all inbound traffic through an ASM ingress gateway, eliminating the need for a separate ingress controller. |
How it works
Deploy the Knative Serving component in an ACK or ACK Serverless cluster through the ACK console.
Create an ingress gateway named ingressgateway in the ASM console. Knative Serving uses this gateway as its service gateway.
Deploy your applications as Knative Services. ASM handles traffic routing while Knative Serving handles autoscaling.
If you selected Kourier as the gateway during Knative deployment, uninstall it after deployment:
In the ACK console, go to Clusters, click your cluster name, and choose Applications > Knative. On the Components tab, find Kourier in the Add-on Component section and click Uninstall.
For more information about the Knative framework, see Knative overview.