Knative vs Kubernetes
For running stateless HTTP-based applications, such as microservices, Knative Serving can fully replace Kubernetes, and add benefits like:
- concept of revisions and rollbacks
- request-based rapid autoscaling, and scale to zero out of the box
- request metrics exported out of te box
- ability to handle spiky loads by buffering requests while pods are scaled up
To add these functionalities to your cluster, Knative runs various components which have certain resource footprint. Also the data path of a request is less OS-native compared to Kubernetes since it has software load balancers like Envoy in the path.
Knative Eventing lets you program Kubernetes APIs declaratively to subscribe to event sources and filter/dispatch events to targets (like other Kubernetes or Knative applications in the same cluster).
Kubernetes does not natively offer this functionality, although similar projects such as Microsoft-backed KEDA offer an alternative to Knative on Kubernetes.