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 email@example.com.
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:
Okay, in this demonstration, I'm going to take you through everything to do with Knative, including installing it and working with Knative serving components, and Knative eventing components. Now everything that I'm going to go through is in this runbook. And it covers steps one through to 7.8.
The first part, step one, involves doing the installation of Knative. So for this, I'm going to jump over into Visual Studio Code. And I've got the same ReadMe here, on the left-hand side. And what I'm going to do, is I'm going to do all of the instructions on the right-hand side in the VisualStudio code integrated terminal.
Now before I start, I'm going to quickly look at our Kubernetes cluster. To make sure that I can authenticate to it. I'll run kubectl get nodes. And here you can see I've got two nodes in the cluster. And the cluster is running on AKS. It's running version 1.15.10 of Kubernetes. And I'll do a kubectl get pods, just to make sure that nothing's in there. Okay, that's good.
So we'll begin with the installation. So, step one, we're going to install Knative. The very first installation part is to install ISTIO. So I'll copy this, and paste it into the terminal. So this is now installing ISTIO which is going to give us a networking layer. Onto which we can then install the Knative serving and Knative eventing components. And indeed we can see that the pods are all in a running status.
Okay, moving on to step 1.3. We're now going to install the serving components for Knative. So I'm going to use the 0.13.0 version. Again I just paste in the commands. Now as the serving components are being installed, there's actually quite a lot of resources that will be deployed into the Kubernetes cluster. Again, while this is running, I'll remind you that the Knative serving components can be installed independently of the Knative eventing components. But in this demonstration, we're going to deploy both the serving and eventing components. So while that's still installing, I'll copy the step 1.4 command.
So the serving components are still being installed and you can see that there's a lot of things that get installed, so you need decent infrastructure within your Kubernetes cluster. Okay, that's now finished. I'll clear the terminal. I'll check the pods in the knative-serving namespace. And we're doing so to ensure that they are all in a running status, which they are.
Okay, step 1.5, is to install the xip.io spelt X-I-P.I-O. So this gives us the ability to have, wildcarded, dynamic DNS. I'll explain this more as we go on. Okay, up to step 1.6, we're now ready to begin installing the eventing components for Knative. Again, I'll install 0.13.0. And the installation is now running.
Okay, I'll copy step 1.7, and this is to check the pods in the Knative-eventing namespace. So the eventing component is going to support the event-driven asynchronous decoupled workflows. So it's still running the eventing installation.
Okay, that's now finished. So I'll clear the terminal, and I'll check the eventing pods. And again, as we require, they're all in a running status. Okay, so that is actually the end of the Knative installation, and as you can see, it's actually quite easy.
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.