Design, Implement and Deploy Kubernetes Cluster from Scratch
Kubernetes is a powerful tool developed by Google for managing containerized applications in a clustered environment. Kubernetes helps you automate, deploy, scale, and manage containerized applications. It gives you the freedom to take advantage of on-premise cloud infrastructures. It also helps you write better cloud-native applications. Kubernetes is a core tool in DevOps; it gives you the ability to schedule and manage containers (Docker or otherwise) at scale. If you’re looking to use Kubernetes in production and have a better understanding of how to manage your containers using Kubernetes. then this Course is perfect for you!
This comprehensive 2-in-1 course is a fast-paced guide offering hands-on and practical guidance with step-by-step instructions to design, implement and deploy Kubernetes Cluster for production grid environment. You’ll initially get up and running with fundamentals of Kubernetes and container orchestration. You’ll build your own container cluster and manage it as well as secure the cluster and handle service discovery. Moving further, you’ll streamline the way you deploy and manage your applications with large-scale container orchestration. Also, monitor and troubleshoot Kubernetes clusters and run highly available Kubernetes. Finally, you’ll be able to use Kubernetes in production and will have a better understanding of how to manage your containers using Kubernetes.
By the end of this course, you’ll containerize your applications to build a production-class container infrastructure in the ‘Kubernetes way’.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Kubernetes in 7 Days, covers managing applications in a productionised Kubernetes. This course will help you to unravel the potential of Kubernetes in the shortest amount of time. You will begin by creating your first Kubernetes cluster using Minikube. Then move on to exploring Kubernetes in some more detail and build a complex cluster. By the 4th Day, you will learn to enhance your cluster with a Grafana based monitoring dashboard in your application. Once you’ve acquired knowledge on dashboards, explore how a Kubernetes cluster provisions storage to its applications and learn how to secure them. Finally, learn to create a CI/CD pipeline to build and deploy your applications.
The second course, Kubernetes Recipes, covers how to orchestrate and automate deployment with Kubernetes services. You will first learn how Kubernetes works with containers and will work through an overview of the main Kubernetes features such as pods, replication controllers, and more. Next, you will learn how to create Kubernetes clusters and how to run programs on Kubernetes. Then you will be introduced to features such as high availability, setting up Kubernetes masters, using Kubernetes with Docker, and orchestration with Kubernetes using AWS. Later, you will explore how to use Kubernetes-UI and how to set up and manage Kubernetes clusters on the cloud and bare-metal. You will also work through recipes on microservice management with Kubernetes. Upon completion of this course, you will be able to use Kubernetes in production and will have a better understanding of how to manage your containers using Kubernetes.
By the end of this course, you’ll containerize your applications to build a production-class container infrastructure in the ‘Kubernetes way’.
About the Authors
● Des Drury is a passionate technologist with many years’ experience in all aspects of data center infrastructure, automation, programming languages, and developer workflows. He is:
– Co-organizer of the Melbourne Kubernetes Meetup
– Author of Open Datacentre, a Kubernetes distribution with numerous datacenter workloads;
– A Kubernetes evangelist from the early days of its release;
– Passionate about helping teams to understand complex technology
– Teaches the skills required for team members to solve their own problems
– An excellent communicator and enjoys helping people, passing on knowledge, and improving processes
He has also built numerous tools that have been adopted as enterprise solutions and has received a number of awards.
● Subhankar Sengupta has vast experience in DevOps, Kubernetes and Microservices domains. He is a senior architect, working for Red Hat, Emerging Technologies and is responsible for architecting containerization strategy via enterprise Kubernetes adoption for large BFSI and Government sectors. He has the practitioner’s view of the day-to-day challenges and could talk from an insider’s perspective. The target audience will be able to leverage his experience and could learn complex topics with relative ease.
Kubernetes in 7 Days
This video will give you an overview about the course.
This video describes how to install the pre-requisite software for the course.
Install kubectl and Virtual box
Install Minikube and Helm and Visual Studio
Install kubectx and kubens and kubetail
This video describes the steps to create a local development cluster using Minikube.
Get to know how to install a number of the Kubernetes add-ons
This video provides a quick exploration of some of the important aspects of the Minikube cluster.
Learn how to work on the Kubernetes dashboard and the CLI.
This video describes how to build an application with Docker.
Describe the application in a Kubernetes native way
Deploy the application to Kubernetes
Finally test it in Kubernetes.
This video is your homework for day one.
Take a look at the Question and try solving it on your own before the next lecture
This video does a quick whistle stop tour of the Kubernetes architecture.
Explore Kubernetes processes.
Understand Kubernetes concepts.
Learn important Kubernetes resource types
This video describes the Kubernetes manifests
Explore in detail Kubernetes resources.
Create Kubernetes resources.
This video describes the kubeconfig file.
Configure kubectl CLI using the kubeconfig file
This video describes the need for package management in Kubernetes.
Describe Kubernetes package called Helm.
Install Helm to Clusters.
Re-deploy first-app using Helm.
This video describes how to deploy a more complex application using Helm.
Explore the Helm chart
This video is your homework for day two.
Deploy the first-app application to Minikube.
This video describes how to install a multi-node Kubernetes cluster with kubeadm using a project called k8s-vagrant-multi-node.
Explore about kubeadm from the documentation
Install the cluster
This video explores some the features of a multi-node Kubernetes cluster.
Check the nodes present
Explore in detail about all the nodes
This video demonstrates how to deploy some of the first workloads you will need on your cluster.
Deploy Ingress Controller and Heapster
Install Kubernetes Dashboard
This video describes how to redeploy the first-app using Helm, but this time with an Ingress resource
Take a look at the Ingress resource template
Deploy into the cluster
Test the application
This video is your homework for day three.
Install the multi-node cluster onto your own machine and deploy the initial workloads to it.
This video describes how Kubernetes uses probes to facilitate self healing of workloads in the cluster.
Explore types of Probe
Learn about Probe actions
Implement Probes in code
This video describes Prometheus, a very popular monitoring solution and timeseries database (TSDB).
Explore Prometheus architecture
Install Prometheus into the cluster
Explore some of the available metrics
This video provides a quick overview of Grafana.
Learn about Grafana
Deploy Grafana into the cluster
Log in to the Grafana web UI
This video describes how to find pre-built Grafana dashboards
Explore the dashboard
Understand the different areas of the dashboard
Deploy the 2nd dashboard
This video is your homework for day four.
Install Prometheus and Grafana into the cluster
This video describes how Kubernetes uses PersistentVolumes (PVs) and PersistentVolumentClaims (PVCs) to manage storage for an application.
Explore types of Persistent volumes
Learn about Access Modes
Discuss how storage classes are used to enable the dynamic provision of persistent volumes
This video provides an overview of Rook, a Kubernetes operator to manage storage clusters like Ceph.
Explore Rook architecture
Install Rook into the cluster.
Deploy an example to test the block storage
This video describes how you can use the Rook Toolbox to get a deeper understanding of the Ceph components.
Explore in detail about the Rook toolbox
Deploy Rook in an example
This video describes how to deploy a HA MariaDB database that makes use of the persistent storage provided by Rook.
Deploy a HA version of the MariaDB database
Clean up the rook sample workloads
This video is your homework for day five.
Install Rook on your cluster and then redeploy Prometheus and Grafana to use persistent storage.
This video describes how Role Based Access Control (RBAC) is used within Kubernetes to secure components of the cluster.
Explore RBAC resources and implement it
Learn about cluster roles and implement it
Explore cluster role bindings and implement it
This video describes how to install Keycloak, an open source access management and identity server, into the cluster.
Configure Keycloak to help protect Kubernetes
This video describes how to configure Kubernetes to use OIDC to secure cluster components.
Get the ca.crt file
Restart the API server
This video describes how to extend the Kubernetes Dashboard deployment so that it is now protected by an OIDC proxy that authenticates with Keycloak.
Deploy the Kubernetes manifests
Connect to Ingress
Log in to the Kubernetes dashboard
This video describes how to configure kubectl so that a user authenticated by Keycloak is used to access the cluster.
Update the kube config file
Map the user against cluster and access the cluster
This video is your homework for day six.
Secure the Kubernetes cluster using Keycloak
This video provides a quick overview of Continuous Integration (CI) / Continuous Deployment (CD) concepts.
Explore Typical CI workflow
Learn about Continuous Delivery and Continuous Deployment
This video describes how to install Jenkins, a very popular automation server often used to implement CI/CD.
Deploy a Docker in Docker (DIND) service to build containers in the cluster.
This video describes how Jenkins implements the Pipeline as Code concept using a Jenkinsfile.
Learn the types of Jenkinsfile
Explore Kubernetes plugin for Jenkins
Take a look at the Jenkinsfile to build the first-app
This video describes how to create a Jenkinsfile to build and deploy the first-app we saw in earlier Sections of the course.
Create a fork
Navigate to the Jenkinsfile and modify the repository name
Build the Pipeline created
This video is your homework for day seven
Install Jenkins and setup a pipeline to build and deploy the first-app
This video provides an overview of the entire course.
In this video, we will learn about containers—the building blocks of Kubernetes.
Understand what a container is and why we use it
Learn the advantages of Docker container
Input commands to get familiar with the Docker container
In this video, we will study the key components that make up the architecture of a Kubernetes cluster.
Define what Kubernetes is
Understand the architecture of the Kubernetes cluster
Discuss the flow of data in the Kubernetes cluster
This video will cover the deployment of Minikube, which is a one node deployment of Kubernetes cluster.
Understand what Minikube is
Understand the deployment of Minikube
Ensure the service of Minikube
This video elaborates the structure of YAML file and the common objects used in it.
Understand the YAML file and its formatting structure
Discuss the common Kubernetes object used in YAML file
This video will cover the deployment of our first pod in our Minikube cluster.
Create a YAML file for the deployment of pod
Discuss each component in the pod YAML file
Ensure the creation of the pod and its services using kubectl and Docker command utilities
This video elaborates about the planning of Kubernetes cluster and the major components that you need to consider when deploying the Kubernetes cluster.
Understand why we need the Kubernetes cluster-based architecture with use cases
Discuss the major components that are required or can be optional as per your organization needs
Define helm and how we can make the internal repo in order to get our previous projects
In this video, you will learn about the environment setup of Kubernetes cluster and what are the minimum requirements that you need in order to follow along with this course.
Understand the lab environment resources
Get an overview of the service ports for cluster communication in Kubernetes cluster
Elaborate the steps required in order the deploy Kubernetes cluster
This video focus on the installation and configuration of Kubernetes cluster.
Understand how to install and configure the Kubernetes cluster
Join the worker nodes with the master node
Check the nodes status and all system pods
This video focus on the validation services of Kubernetes cluster. You will also learn the troubleshooting steps for the deployment of Kubernetes cluster.
Check the system pods status and swap partition
Check the services on the worker nodes
Check the logs of pods or use the journal system for looking into logs
This video focus on the communication details inside the Kubernetes cluster.
Understand the flow of Kubernetes cluster communication
Learn the primary communication paths used in the Kubernetes cluster
Get a summary of the section
In this video, you will learn what deployment is and roll your updates back when needed.
Prepare the YAML file for deployment
Update the deployment
Learn how to roll back the deployment
This video focuses on the service networking in Kubernetes, specifically kube-proxy.
Understand how to expose the services
Configure and expose the service of an application inside the Kubernetes cluster
Define the kube-proxy and other networking methods used in Kubernetes
This video focuses on how the ingress feature works in Kubernetes cluster. Furthermore, we have configured the ingress for a use case.
Install ingress controller in Kubernetes cluster
Deploy a pod and create a service for the ingress
Create a rule for the ingress and access the application outside the Kubernetes cluster
In this video, you will learn how to deploy a load balancer in Kubernetes cluster.
Define load balancers in the Kubernetes cluster
Understand how to deploy a load balancer
Discuss the YAML file to deploy a load balancer
In this video, you will learn about the cluster DNS and service discovery inside the Kubernetes cluster. You will also learn about the troubleshooting steps if the cluster DNS is not working.
Discuss the service discovery in Kubernetes cluster
Check the cluster DNS services
Troubleshoot the cluster DNS problems
In this video, you will learn to configure and deploy a NFS-based storage application in which the mount point for the storage of POD will be the same.
Configure the NFS storage server
Configure the persistent volume and claim the storage
Create our pod to check whether the NFS storage is working or not
In this video, you will understand the self-healing concept in Kubernetes.
Check the response of the pod if it is removed from deployment kind
Shut down one of the nodes in the Kubernetes cluster to see how it responds
In this video, you will learn how to create a trigger if the application fails in the container.
Grasp the concept of liveness probes in Kubernetes
Define the use cases and benefits of liveness probe in Kubernetes
Demonstrate and test how to implement the liveness probe
This video elaborates the auto-scaling concepts in Kubernetes.
Understand what auto-scaling is
Explain a cost effectiveness use case
Define how auto-scaling is driven by metrics
In this video, you will learn how to deploy the auto-scaling feature in Kubernetes using Horizontal Pod Auto-scaling (HPA).
Understand the steps to perform auto-scaling using HPA
Deploy the pod and learn how to auto-scale it
Understand the configuration of HPA and how our configuration will impact our application
In this video, you will get an overview in monitoring in the Kubernetes cluster.
Understand what monitoring is
Learn the different types of monitoring
Get an overview of Prometheus and Grafana
In this video, you will learn about technical configurations and installation of Prometheus and Grafana.
Understand the installation method
Discuss the steps for installation and configuration
Install Prometheus and Grafana verify their services
In this you will learn about monitoring the Kubernetes infrastructure using Grafana.
Discuss Kubernetes monitoring using the Grafana community Dashboard
Import a community dashboard using Grafana
Explore the features of the Grafana community Dashboard
In this video, you will learn about application monitoring and how you can collect the monitoring data from an application.
Discuss the way to collect the monitoring data from an application
Plan a framework or language when creating an application to get the monitoring data
Implement the service so it can automatically collect the data from application
In this video, you learn how to configure alerting in the Grafana dashboard.
Understand what alerting is and how it is significant in an organization environment
Set up alerts
Set the notification channel