Knative
Knative runs containers as request-driven serverless workloads on Kubernetes, including scale to zero.
- Category: Orchestration & Scheduling
- CNCF maturity: Graduated
- Language: Go
- License: Apache-2.0
- Repository: knative/serving
- Documented at commit:
6fb71ff(46 commits after tagknative-v1.22.0, committer date 2026-06-19)
What it is
Knative is a set of Kubernetes controllers that turn a plain container image into a request-driven service. You hand it an image and a concurrency target; it manages the Deployment, scales the replica count up and down with load, and scales all the way to zero when no traffic arrives. The core implementation lives in knative/serving, which is the focus of this deep-dive. A separate repository, knative/eventing, handles event delivery and is out of scope here.
Serving splits into a control plane of reconcilers (cmd/controller/main.go:56) and a data plane built from two components: the activator, which buffers requests while a scaled-to-zero Revision starts, and the queue-proxy sidecar, which measures live concurrency on each user Pod. The autoscaler (the Knative Pod Autoscaler, or KPA) consumes those measurements and decides the replica count.
The user-facing API is four custom resources. A Service is the top-level object that ties together a Configuration and a Route (pkg/apis/serving/v1/service_types.go:42). Each change to a Configuration produces an immutable Revision, and the Route splits traffic across Revisions by percentage.
When to use it
- You want HTTP or gRPC workloads that scale to zero when idle and back up on demand, without writing your own autoscaling glue.
- You want percentage-based traffic splitting and per-Revision rollback as a built-in primitive rather than a CI script.
- Your scaling signal is request concurrency or requests per second, the kind of live load signal Knative measures directly.
- It is a weaker fit when your scaling signal is queue depth or an external event source; KEDA targets that case more directly.
- It is overkill for a long-lived service that always runs at a fixed replica count and never scales to zero.
In this deep-dive
- History: origin, milestones, and why it exists.
- Architecture: components and how requests flow.
- Adoption & Ecosystem: who runs it and what surrounds it.
- Internals: the code paths that matter, read from source.
- Getting Started: install and a first working setup.
Sources
- knative/serving (source, README, LICENSE, go.mod), read at commit
6fb71ff. - knative/community ADOPTERS.MD.
- Knative project page (CNCF).
- CNCF Announces Knative's Graduation (2025-10-08).
- Knative accepted as a CNCF incubating project (2022-03-02).
- Knative Has Finally Graduated From the CNCF (The New Stack).
- cncf/toc #1868 Knative Incubating to Graduating checklist.
- KEDA vs Knative vs Kubernetes HPA (ThinhDA).
- Serverless Open-Source Frameworks (CNCF).
- Knative documentation.
- GitHub REST API repos/knative/serving.