Kubernetes Masterclass for Application Developers
Published 5/2024
Duration: 7h38m | .MP4 1280x720, 30 fps(r) | AAC, 44100 Hz, 2ch | 7.54 GB
Genre: eLearning | Language: English
Published 5/2024
Duration: 7h38m | .MP4 1280x720, 30 fps(r) | AAC, 44100 Hz, 2ch | 7.54 GB
Genre: eLearning | Language: English
Upgrade your skillset by learning Kubernetes with a complete, step-by-step, hands-on course
What you'll learn
Understand how Kubernetes operates in a cluster-setup
Learn about the most important Kubernetes resources which can be found in any Kubernetes deployment
Be able to debug an application that runs in Kubernetes
Design and implement a Kubernetes setup for a new application
Create and access a Kubernetes cluster in AWS
Understand the best practices for secret management in Kubernetes
Learn to configure rollout strategies in Kubernetes to enable zero-downtime releases
Requirements
A local system capable of running minikube, so at least 2 CPUs, 2GB of free memory and 20GB of free disk space
Familiarity with command line is recommended since we're going to use the terminal throughout the course
Description
Intro
This course is the best online resource you need to level up your career by learning Kubernetes from scratch, through hands-on and visual lectures.
Kubernetes is
widely used
by lots of companies around the world for its stability, versatility and extensibility. It's the engine behind many microservices-based architectures and it powers businesses of billions of dollars.
The goal of this course is to teach you
the backbone of Kubernetes
, which consists of the most essential Kubernetes resources which can be found in any application setup deployed with Kubernetes:
Pods, ReplicaSets, Deployments, Services, Ingresses, ConfigMaps, Secrets, PersistentVolumes
, and many others.
In addition, you'll learn how to discover and adapt to new configurations, because Kubernetes is a platform in active development, so having a strong foundation will make you adaptable enough to learn new resources and build new Kubernetes deployments in the future.
About myself
I'm a Senior Software Engineer, with over 10 years of experience in the field, currently working in big tech. My expertise revolves around designing, implementing and evolving Big Data and low-latency systems using JVM-based technologies.
I'm heavily involved in building deployment strategies using container-orchestration frameworks (like Kubernetes), but also CI/CD workflows and testing strategies that improve the development process and system stability.
Why I built this course?
Kubernetes is a very complex platform if you try to learn it without a properly defined trajectory. I've seen many people struggling with things like:
Why is my pod crashing? What's happening?
Why isn't my application receiving any requests?
Why is my data lost after my pod wrote it?
What resource should I use to achieve this (particular) functionality?
Those questions usually uncover some Kubernetes fundamentals that were not properly understood, and it may take hours or even days to debug such issues and figure out what's the problem.
For that reason I decided to create a course that explains all those concepts using a bottom-up approach, meaning that concepts are explained using their simplest form, and then everything else is built on top of that.
What is the content of this course?
This course is split into multiple chapters, each one exposing a configuration area of Kubernetes:
Chapter 1 - Introduction
In this chapter, we make a short introduction to this course by double-clicking on its scope, and most importantly, how you should follow it so you can get the maximum value out of it.
This is an important chapter since it sets the ground for the upcoming lectures.
Chapter 2 - A short recap about Containers
This chapter contains a short recap on Docker containers, specifically about the way you can create a Docker image and how to upload it into a remote Docker repository, as well as connecting 2 containers together and passing data between them through a volume.
The last lecture makes a short introduction into Docker Compose, which is a compact way of managing multiple containers together.
Chapter 3 - General Kubernetes Concepts
We start this amazing journey of learning Kubernetes by visually understanding the main concepts behind it: the cluster setup, the Pod object and its lifecycle and also namespaces.
This is a fundamental chapter which sets the ground for the next chapters.
Chapter 4 - Your first hands-on steps in Kubernetes
In this chapter you're going install minikube, which is the tool we're going to use throughout this course to play with Kubernetes
We're going to introduce the kubectl command line utility that is the bread and butter of Kubernetes, with this command we're going to do pretty much everything in this course
In this chapter you're going to create your first Pod in Kubernetes!
Chapter 5 - Learning about the Pod Lifecycle Management
This chapter covers the Pod Lifecycle, which involves init containers, readiness & liveness probes as well as post-start and pre-stop hooks
Those are essential configurations for making sure that Kubernetes perceives your application as up & running
In this chapter you're going to deploy your first API in Kubernetes
Chapter 6 - Getting access to Pods through Services
This chapter covers the Service resource in Kubernetes, which is essentially a network-level configuration that enables access and load balancing to your pods
We're going to learn about multiple types of services, how they work, and what are the main differences between them
Chapter 7 - Getting access to Pods through an Ingress
In this chapter we're going to play with an Ingress resource, which is responsible for routing traffic to different services, using configurable routing strategies.
You're going to learn about ingress controllers and the main differences between an ingress and a service
Chapter 8 - Managing multiple pods in Kubernetes through ReplicaSets and Deployments
We finally reached the chapter where we learn about Deployments and ReplicaSets, which are resources that manage multiple pods in a resilient manner
Both those resources ensure that a pre-configured number of replicas is up and running at any given time
You're going to learn about rollout strategies as well using the Deployment resource
Chapter 9 - Running Batch workflows in Kubernetes
This chapter covers batch workflows in Kubernetes, and we're going to learn about the Job and CronJob resources, which map on a lot of use-cases.
We're going to understand how they work and their most important configurations
Chapter 10 - Configuration and Secret Management in Kubernetes
In this chapter we're going to cover the ConfigMap and Secret resources, that enable app developers to provide live-changing configurations and secrets to their applications.
You're going to learn also best practices for secret management in Kubernetes, using the Vault operator.
Chapter 11 - Managing Storage in Kubernetes
This chapter covers stateful workloads in Kubernetes, by exploring the PersistentVolume and PersistentVolumeClaim resources
You're going to learn the role of those 2 resources and how they abstract the access to different cloud-storage solutions
Finally, we're going to learn about the StatefulSet resource, which enables database deployments (and other stateful workloads) in Kubernetes by guaranteeing pod uniqueness.
Chapter 12 - Deploying your app in AWS Elastic Kubernetes Service
In this last chapter, we're going to deploy our application in a Kubernetes cluster that we create in AWS using Elastic Kubernetes Service
You're going to learn about EKS, IAM, EC2 and other AWS services, while we configure kubectl access to our EKS cluster
You're going to learn how to access your application using a network load balancer and also an application load balancer
What are the requirements for this course?
A local system capable of running minikube, so at least 2 CPUs, 2GB of free memory and 20GB of free disk space
A strong desire to learn Kubernetes!
Thank you for taking the time to look through this description and I'm looking forward to see you in the first lecture!
Who this course is for:
Application developers who want to expand their expertise by learning Kubernetes
Senior Software Engineers who want to make cross-functional contributions in their organisations
Computer Science Students who want to learn Kubernetes
More Info