🎉 DevOps Interview Prep Bundle is live — 1000+ Q&A across 20 topicsGet it →
All Articles

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.

DevOpsBoys4 min read
Share:Tweet

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.

yaml
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: 300

Cold 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:

bash
# 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:8080

Scaling

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.

bash
# 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 hello

Cold 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

FactorKnativeOpenFaaSFission
Cold start800ms-2s600ms-1.5sUnder 100ms
Scale to zeroYes (built-in)Pro onlyYes
Event sourcesExcellent (CloudEvents)GoodGood
Developer UXMediumExcellentMedium
Community sizeLarge (CNCF)MediumSmall (CNCF Sandbox)
Resource overheadHigh (needs Istio/Kourier)LowMedium
Language supportAny container20+ templates10+ environments
Production maturityHighHighMedium

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

Browse fixes
Newsletter

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

Comments