Difficulty: Introduction
Estimated Time: 20 minutes

Knative is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads. It drives with these primary features:

Serving Scale to zero, request-driven compute model
Events Universal subscription, delivery and management of events

In older versions of Knative there was another feature called Building. That evolved and split out into its own project called Tekton. Tekton pipelines are a cloud native and Kubernetes native technique for running CI/CD pipelines on Kubernetes. Tekton pipelines (building) are an important part of the serverless experience that coordinated with Knative.

Knative (pronounced kay-nay-tiv) extends Kubernetes to provide a set of middleware components that are essential to build modern, source-centric, and container-based applications that can run anywhere: on premises, in the cloud, or even in a third-party data center.

Each of the components under the Knative project attempt to identify common patterns and codify the best practices that are shared by successful real-world Kubernetes-based frameworks and applications. Knative components focus on solving many mundane but difficult tasks such as:

  • Deploying a container
  • Orchestrating source-to-URL workflows on Kubernetes
  • Routing and managing traffic with blue/green deployment
  • Automatic scaling and sizing workloads based on demand
  • Binding running services to eventing ecosystems]()
  • Developers on Knative can use familiar idioms, languages, and frameworks to deploy any workload: functions, applications, or containers.

These instructions have been adapted from Getting Started with Knative App Deployment.

There are a set of helpful solutions that allow serverless functions to run:

  • Knative (pronounced kay-nay-tiv) extends Kubernetes to provide a set of middleware components that are essential to build modern, source-centric, and container-based applications that can run anywhere: on premises, in the cloud, or even in a third-party data center.
  • Istio is a service mesh for Kubernetes
  • Kubernetes is the container management system that targets a variety of cloud and data center resources. An operating system for your data center.

In the following steps you will learn:

  • how to install Knative Kubernetes,
  • how to install Istio as a network layer for Knative,
  • how to install and invoke functions on Knative.

More about the Knative and Istio architecture is described in the documentation.

You have just experienced just the tip of the key features that make Knative the serverless framework for Kubernetes. Many Serverless frameworks have recognized the growing power of Knative and have founded or refactored the internals of their frameworka to leverage Knative. If you are considering serverless projects on Kubernetes, definitely make sure they are leveraging the benefits of Knative.

Lessons Learned

With these steps you have learned:

  • ✔ how to install Knative Kubernetes,
  • ✔ how to install Istio as a network layer for Knative,
  • ✔ how to install and invoke functions on Knative.

References


For a deeper understanding of these topics and more join
Jonathan Johnson
at various conferences, symposiums, workshops, and meetups.

Software Architectures ★ Speaker ★ Workshop Hosting ★ Kubernetes & Java Specialist

Knative

Step 1 of 6

Kubernetes Cluster

For this scenario, Katacoda has just started a fresh Kubernetes cluster for you. Verify it's ready for your use.

kubectl version --short && \ kubectl get componentstatus && \ kubectl get nodes && \ kubectl cluster-info

The Helm package manager used for installing applications on Kubernetes is also available.

helm version --short

Kubernetes Dashboard

You can administer your cluster with the kubectl CLI tool or use the visual Kubernetes Dashboard. Use this script to access the protected Dashboard.

token.sh