This training course is designed to help you master the skills of deploying cloud-native applications into Kubernetes.
Observe first hand the end-to-end process of deploying a sample cloud-native application into a Kubernetes cluster. By taking this course you'll not only get to see firsthand the skills required to perform a robust enterprise-grade deployment into Kubernetes, but you'll also be able to apply them yourself as all code and deployment assets are available for you to perform your own deployment:
https://github.com/cloudacademy/voteapp-frontend-react
https://github.com/cloudacademy/voteapp-api-go
https://github.com/cloudacademy/voteapp-k8s
Kubernetes Resources
This training course provides you with in-depth coverage and demonstrations of the following Kubernetes resources:
- Namespace
- Deployment/ReplicaSet
- Pod
- Service
- Ingress/Ingress Controller
- StatefulSet
- Persistent Volume
- Persistent Volume Claim
- Headless Service
- NetworkPolicy
Learning Objectives
What you'll learn:
- Learn and understand the basic principles of deploying cloud-native applications into a Kubernetes cluster
- Understand how to set up and configure a locally provisioned Kubernetes cluster using Minikube
- Understand how to work with and configure many of the key Kubernetes cluster resources such as Pods, Deployments, Services, etc.
- And finally, you’ll learn how to manage deployments and Kubernetes cluster resources through their full lifecycle.
Demonstration
This training course provides you with many hands-on demonstrations where you will observe first hand how to
- Create and provision a Minikube Kubernetes cluster
- Install the Cilium CNI plugin
- Build and deploy Docker containers
- Create and configure Kubernetes resources using kubectl
Prerequisites
- A basic understanding of containers and containerization
- A basic understanding of software development and the software development life cycle
- A basic understanding of networks and networking
Intended Audience
- Anyone interested in learning Kubernetes
- Software Developers interested in Kubernetes containerization, orchestration, and scheduling
- DevOps Practitioners
- [Instructor] Okay, welcome back. In this lecture, I'm going to demonstrate installing and setting up Cilium. If you recall earlier, I mentioned that we were going to leverage the Cilium CNI plug-in. This is a fantastic container networking technology, which can be used and leveraged within a Kubernetes cluster. In particular, it will give us a solution to create and deploy layer four and/or layer seven networking policies, which we'll use to segment and authorize ingress pod traffic within our cluster.
Before we start setting up Cilium, I'll draw your attention to the following resources, which can be consulted upon to get a more detailed view of the installation instructions for setting up Cilium, and for crafting Cilium networking policies. For starters, we'll preform a kubectl create, using the dash effect dash and flag to denote a YAML configuration file, publicly located in the Cilium git hub repository. This will create the Kubernetes custom resources used by Cilium itself at runtime.
As you can see, it creates the following: conflict map, service accounts, cluster role, cluster role-binding, daemon set, and a deployment. Keep in mind that these specific resources are being created to facilitate the Cilium CNI networking solution within the cluster. We can now watch the Cilium pods launch, which they do so in the kube-dash system namespace. So, that's a great result.
As you can see, the entire Cilium CNI system is now up and running within the cluster. This will allow us later on in the course, to demonstrate creating networking policies using layer four and layer seven roles. More on that later, but for now, that completes this lecture. Go ahead and close it, and we'll see you shortly in the next one, where we start performing the actual deployment of our sample cloud native application into our cluster.
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).