How quickwork-technologies/knative-serving works
Knative Serving runs serverless containers on Kubernetes. A user creates a Serving Service; reconciliation produces a Configuration and Route, the Configuration snapshots deployment intent into immutable Revisions, and Revision reconciliation provisions workloads and scaling resources. Route and domain-mapping reconciliation program ingress, while the Activator and per-revision queue proxy handle traffic and scale-from-zero behavior. Autoscaling observes request statistics and adjusts capacity; garbage collection removes obsolete revisions. The README documents these capabilities, and the tree identifies the supporting subsystems; detailed implementation wiring beyond the sampled controller and handler code is represented conservatively.
Main entry points: service.go Service Reconciler · handler.go Queue Proxy · configuration.go Configuration Reconciler · revision.go Revision Reconciler
Components 23
Serving API
- Serving Client
pkg/client/clientset/versioned/clientset.go - Serving Resources
pkg/apis/serving/v1/service_types.go - Autoscaling Resources
pkg/apis/autoscaling/v1alpha1/pa_types.go
Resource Reconciliation
- Service Reconciler
pkg/reconciler/service/service.go - Configuration Reconciler
pkg/reconciler/configuration/configuration.go - Revision Reconciler
pkg/reconciler/revision/revision.go - Route Reconciler
pkg/reconciler/route/route.go - Domain Mapping
pkg/reconciler/domainmapping/reconciler.go - Workload Resources
pkg/reconciler/revision/resources/deploy.go - Ingress Resources
pkg/reconciler/route/resources/ingress.go
Traffic Serving
- Activator
pkg/activator/activator.go - Request Context
pkg/activator/handler/context_handler.go - Queue Proxy
pkg/queue/handler.go
Autoscaling
- KPA Reconciler
pkg/reconciler/autoscaling/kpa/kpa.go - Request Metrics
pkg/autoscaler/metrics/collector.go - Statistics Server
pkg/autoscaler/statserver/server.go - HPA Reconciler
pkg/reconciler/autoscaling/hpa/hpa.go
Lifecycle Support
- Revision Garbage Collection
pkg/reconciler/gc/gc.go - Route Labeler
pkg/reconciler/labeler/labeler.go - Namespace Certificates
pkg/reconciler/nscert/nscert.go
Other components
- Application Developer
- Kubernetes API
- Serverless Container
Connections 26
- Application Developer → Serving Client: submits resources
- Serving Client → Kubernetes API: writes resources
- Kubernetes API → Service Reconciler: notifies changes
- Kubernetes API → Configuration Reconciler: notifies changes
- Kubernetes API → Revision Reconciler: notifies changes
- Kubernetes API → Route Reconciler: notifies changes
- Service Reconciler → Configuration Reconciler: creates configuration
- Service Reconciler → Route Reconciler: creates route
- Configuration Reconciler → Revision Reconciler: creates revision
- Revision Reconciler → Workload Resources: provisions workload
- Workload Resources → Kubernetes API: writes workload
- Route Reconciler → Ingress Resources: programs routing
- Ingress Resources → Kubernetes API: writes ingress
- Domain Mapping → Kubernetes API: writes domain resources
- Kubernetes API → Activator: provides revision state
- Activator → Request Context: dispatches request
- Request Context → Queue Proxy: forwards request
- Queue Proxy → Serverless Container: proxies traffic
- Queue Proxy → Statistics Server: reports statistics
- Statistics Server → Request Metrics: serves statistics
- Request Metrics → KPA Reconciler: provides measurements
- KPA Reconciler → Kubernetes API: updates capacity
- HPA Reconciler → Kubernetes API: updates capacity
- Revision Garbage Collection → Kubernetes API: removes obsolete revisions
- Route Labeler → Kubernetes API: updates route labels
- Namespace Certificates → Kubernetes API: manages certificates