Interested in knowing what Knative is and how it simplifies Kubernetes?
Knative is a general-purpose serverless orchestration framework that sits on top of Kubernetes, allowing you to create event-driven, autoscaled, and scale-to-zero applications.
This course introduces you to Knative, taking you through the fundamentals, particularly the components Serving and Eventing. Several hands-on demonstrations are provided in which you'll learn and observe how to install Knative, and how to build and deploy serverless event-driven scale-to-zero workloads.
Knative runs on top of Kubernetes, and therefore you’ll need to have some existing knowledge and/or experience with Kubernetes. If you’re completely new to Kubernetes, please consider taking our dedicated Introduction to Kubernetes learning path.
For any feedback, queries, or suggestions relating to this course, please contact us at firstname.lastname@example.org.
By completing this course, you will:
- Learn about what Knative is and how to install, configure, and maintain it
- Learn about Knative Serving and Eventing components
- Learn how to deploy serverless event-driven workloads
- And finally, you’ll learn how to work with and configure many of the key Knative cluster resources
- Anyone interested in learning about Knative and its fundamentals
- Software Engineers interested in learning about how to configure and deploy Knative serverless workloads into a Kubernetes cluster
- DevOps and SRE practitioners interested in understanding how to install, manage and maintain KNative infrastructure
The following prerequisites will be both useful and helpful for this course:
- A basic understanding of Kubernetes
- A basic understanding of containers, containerization, and serverless based architectures
- A basic understanding of software development and the software development life cycle
- A basic understanding of networks and networking
The knative-demo GitHub repository used within this course can be found here:
Welcome back. In this lesson, I'm going to walk you through the process of installing Knative components into an existing Kubernetes cluster.
For starters, Knative requires a traffic routing and ingress layer to enable it to automatically route, external traffic to services deployed within it. To accomplish this, Istio is first installed. Istio is a next-generation microservice network management layer.
Installing Istio into Kubernetes is fairly straightforward. In this example, I'll install the 1.4.7 version of Istio, with the minimal configuration option. To complete the Istio installation, check that all pods in the istio-system namespace are running. We will next install the Knative Serving component. This consists of deploying the Serving Custom Resource Definition, the Serving Core components, and the Serving Istio controller.
Optionally, we can install and configure xip.io, spelled x-i-p.io to provide us with wildcarded DNS names. This is very useful for testing and prototyping when you don't have the ability to create DNS records.
Check that all pods in the Knative, Serving namespace are running. The final part of our Knative installation involves installing the Knative Eventing component. This part of the installation consists of deploying the Eventing Custom Resource Definitions. The Eventing Core Resources. And InMemory Channel and a Channel Broker.
To complete the Eventing installation, check that all pods in the Knative Eventing namespace are running. Okay, that concludes this lesson. In summary, you learnt that installing Knative is both simple and straightforward. The installation involved installing into Kubernetes Istio, for the networking layer, followed by the Serving component, for Serving and then finally the Eventing component for Eventing.
Go ahead and close this lesson and I'll see you shortly in the next one.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.