Knative vs OpenFaaS vs Fission: Serverless on Kubernetes 2026
Comparing Knative, OpenFaaS, and Fission for serverless workloads on Kubernetes. Architecture, cold starts, scaling, event sources, and when to skip them entirely.
Running serverless functions on Kubernetes gives you the flexibility of your own cluster with the developer experience of managed FaaS. Three platforms dominate this space: Knative, OpenFaaS, and Fission. Here is how they actually compare in 2026.
Why Run Serverless on Kubernetes at All?
Managed serverless (AWS Lambda, Cloud Run) is simpler. Choose Kubernetes-based serverless when:
- You need to run on-premises or in a regulated environment
- Function execution time exceeds Lambda's 15-minute limit
- You want to use GPU nodes for ML inference functions
- You want to avoid vendor lock-in across clouds
- Your team already operates a Kubernetes cluster
Knative
Knative is the most mature and widely deployed option. It has two components: Knative Serving (request-driven autoscaling including scale-to-zero) and Knative Eventing (event-driven function triggering).
Architecture
Knative Serving wraps your container in a Service resource. Traffic is routed through an ingress layer (Kourier, Istio, or Contour). The autoscaler (KPA) monitors requests-per-second and scales pods up and down, including to zero.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: hello-fn
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Knative"
timeoutSeconds: 300Cold Start
Knative cold start is typically 800ms-2s for a Go or Node.js container, higher for JVM. The autoscaler keeps a configurable number of minimum instances warm. Set minScale: 1 on critical paths to eliminate cold starts entirely.
Event Sources
Knative Eventing supports CloudEvents natively. Built-in sources: ApiServerSource (watch K8s events), PingSource (cron), KafkaSource, RabbitMQSource. Any system that sends CloudEvents format works.
Maintenance Status
Actively maintained by Google, IBM, Red Hat. CNCF Incubating project. Used in production at Google Cloud Run under the hood. Strongest community of the three.
OpenFaaS
OpenFaaS (Functions as a Service) is the most developer-friendly option. It has a simple CLI, a UI, and a wide template library covering Python, Node.js, Go, Java, Ruby, PHP, and more.
Architecture
OpenFaaS runs a gateway deployment that routes HTTP requests to function pods. The faas-netes provider manages function lifecycle in Kubernetes. NATS handles async function invocations.
Deploy a function:
# Install faas-cli
curl -sSL https://cli.openfaas.com | sudo -E sh
# Create a new function from template
faas-cli new my-function --lang python3-http
# Build and push
faas-cli build -f my-function.yml
faas-cli push -f my-function.yml
# Deploy
faas-cli deploy -f my-function.yml --gateway http://gateway.openfaas.svc:8080Scaling
OpenFaaS uses its own AlertManager-based autoscaler or the Prometheus Alertmanager rules to trigger scaling. Scale-to-zero requires the faas-idler component (Pro feature in managed edition). Open-source edition scales down to 1 replica by default.
Cold Start
600ms-1.5s for lightweight Python/Node containers. Comparable to Knative.
Maintenance Status
OpenFaaS CE (community edition) is open source. OpenFaaS Pro adds scale-to-zero, SSO, and secrets management. The project is maintained by Alex Ellis and a small team. Active but smaller community than Knative.
Fission
Fission is purpose-built for fast cold starts. It pre-warms a pool of execution environments and loads your function code into them on demand.
Architecture
Fission runs a pool manager that keeps warm pods for each language runtime. When a request comes in, it picks an available warm pod, loads your function into it, and executes. This is fundamentally different from Knative and OpenFaaS which spin up new pods.
# Install Fission
helm install fission fission-charts/fission-all \
--namespace fission --create-namespace \
--set serviceType=NodePort
# Create an environment
fission env create --name python --image fission/python-env
# Create a function
fission fn create --name hello --env python --code hello.py
# Create an HTTP trigger
fission route create --method GET --url /hello --function helloCold Start
Under 100ms — this is Fission's main advantage. The pre-warmed pool means function execution starts almost instantly. For latency-sensitive APIs this is a significant win over Knative and OpenFaaS.
Event Sources
HTTP triggers, message queue triggers (Kafka, NATS, Azure Queue), time triggers (cron), and Kubernetes watch triggers.
Maintenance Status
Originally from Platform9. Now community-maintained under CNCF Sandbox. Smaller community, slower development pace compared to Knative. Some features are less polished.
Decision Table
| Factor | Knative | OpenFaaS | Fission |
|---|---|---|---|
| Cold start | 800ms-2s | 600ms-1.5s | Under 100ms |
| Scale to zero | Yes (built-in) | Pro only | Yes |
| Event sources | Excellent (CloudEvents) | Good | Good |
| Developer UX | Medium | Excellent | Medium |
| Community size | Large (CNCF) | Medium | Small (CNCF Sandbox) |
| Resource overhead | High (needs Istio/Kourier) | Low | Medium |
| Language support | Any container | 20+ templates | 10+ environments |
| Production maturity | High | High | Medium |
When to Skip All Three and Use Plain Kubernetes
Serverless frameworks on Kubernetes add operational complexity. Consider just using Deployments + HPA if:
- Your functions run for longer than 30 seconds (HPA handles sustained load better)
- Your team is not already familiar with FaaS concepts
- You have fewer than 10-20 functions
- You need GPU access (KEDA + Deployments works better)
For event-driven scaling on plain Deployments, KEDA (Kubernetes Event Driven Autoscaling) is often a better choice than any of these three. It integrates with Kafka, SQS, Redis, Prometheus, and 60+ other sources and scales any Deployment — no framework required.
Recommendation
- Most teams → Knative: best community, best CloudEvents support, strongest long-term investment
- Developer-first teams who want a simple CLI → OpenFaaS Pro: best developer experience
- Latency-critical APIs where cold start matters → Fission: nothing beats its warm pool architecture
- Just scaling existing services → KEDA: skip the serverless framework entirely
For Kubernetes autoscaling without serverless frameworks, see our KEDA guide.
Today I Fixed
Short real fixes from production — posted daily
Stay ahead of the curve
Get the latest DevOps, Kubernetes, AWS, and AI/ML guides delivered straight to your inbox. No spam — just practical engineering content.
Related Articles
Build an Internal Developer Platform with Backstage (2026)
Step-by-step guide to setting up a Backstage developer portal — software catalog, TechDocs, Kubernetes plugin, and golden path templates.
Coder vs Gitpod vs DevPod: Cloud Dev Environments Honest Review 2026
Tested Coder, Gitpod, and DevPod for cloud development environments. Here's an honest comparison — what each does well, where each fails, and which one to use.
Devtron Review — A Kubernetes-Native CD Platform That Tries to Do It All
Devtron bundles CI/CD, GitOps, security scanning, and cost visibility into one Kubernetes-native dashboard. I set it up on a real cluster to see if the 'all-in-one' pitch holds together or feels like compromise.