Knative is an open source project started by Google, Redhat, IBM, pivotal and other leaders. It is built on kubernetes and Istio and can run on GKE, PKS, Minikube, AKS and other environments. Knative extends Kubernetes to help build modern, source-centric, and container-based serverless workloads. It provides developers a simpler way to deploy serverless-style functions, applications, and containers on Kubernetes and Istio.
Knative implements primitives for function and application development through a series of CRD’s and associated controllers in Kubernetes which provides for declarative specification of what a developer wants. The Knative project is designed to drive improvement in Kubernetes and Istio. Here is a view of the design I got from Knative GitHub page.
There are three major components or features in Knative which are build, serving and eventing. The build component serves the purpose of allowing developers to build images from a defined sources which could be a git repository or container registry. The serving component uses Istio to handle routing of traffic among revisions, automates flows from containers to running functions and serves as a request-driven compute that can scale to zero. Lastly, the Eventing component allows functions to subscribe to events. It does the management and delivery of events.
With Knative, we no longer need to worry about orchestrating source-to-container workflows, binding running services to event workspace, routing and managing traffic during deployment.