The
Get Started with Kubernetes Today
You'll be up and running with Kubernetes in no time at all.
-
$39.99
$39.99The Kubernetes Workshop
Unlock one year of full, unlimited access!
Learning Made Simple
Nobody likes going through hundreds of pages of dry theory, or struggling with uninteresting examples that don’t compile. We've got you covered. Any time, any device.
-
Learn by doing real-world development, supported every step of the way with step-by-step examples and expert screencasts.
-
Become a verified practitioner and earn an authenticated digital certificate from Packt upon successful completion.
-
Manage your learning based on your personal schedule, with content that lets you pause and resume your progress at will.
A Smarter Way to Learn Kubernetes
A step-by-step, focused approach to getting up and running with real-world Kubernetes in no time at all.
Course Curriculum
An A to Z tour of Kubernetes.
-
1. Introduction to Kubernetes and Containers
- Overview FREE PREVIEW
- The Evolution of Software Development FREE PREVIEW
- Docker Basics FREE PREVIEW
- Exercise 1.01: Creating a Docker Image and Uploading It to Docker Hub FREE PREVIEW
- Exercise 1.02: Running Your First Application in Docker FREE PREVIEW
- The Essence of Linux Container Technology FREE PREVIEW
- Exercise 1.03: Joining a Container to the Network Namespace of Another Container FREE PREVIEW
- Cgroups FREE PREVIEW
- Containerization: The Mindset Change FREE PREVIEW
- The Need for Container Orchestration FREE PREVIEW
- Welcome to the Kubernetes World FREE PREVIEW
- Activity 1.01: Creating a Simple Page Count Application FREE PREVIEW
- Activity 1.01: Creating a Simple Page Count Application FREE PREVIEW
- Summary FREE PREVIEW
-
2. An Overview of Kubernetes
- Overview
- Setting up Kubernetes
- Exercise 2.01: Getting Started with Minikube and Kubernetes Clusters
- Kubernetes Components Overview
- Kubernetes Architecture
- Migrating Containerized Application to Kubernetes
- Exercise 2.02: Running a Pod in Kubernetes
- Service Specification
- Exercise 2.03: Accessing a Pod via a Service
- Services and Pods
- Delivering Kubernetes-Native Applications
- Exercise 2.04: Scaling a Kubernetes Application
- Pod Life Cycle and Kubernetes Components
- Exercise 2.05: How Kubernetes Manages a Pod's Life Cycle
- Activity 2.01: Running the Pageview App in Kubernetes
- Activity 2.01: Running the Pageview App in Kubernetes
- A Glimpse into the Advantages of Kubernetes for Multi-Node Clusters
- Summary
-
3. kubectl – Kubernetes Command Center
- Overview
- How kubectl Communicates with Kubernetes
- Exercise 3.01: Setting up Autocompletion
- Setting up the kubeconfig Configuration File
- Common kubectl Commands
- Exercise 3.02: Creating a Deployment
- Exercise 3.03: Updating a Deployment
- Exercise 3.04: Deleting a Deployment
- Activity 3.01: Editing a Live Deployment for a Real-Life Application
- Activity 3.01: Editing a Live Deployment for a Real-Life Application
- Summary
-
4. How to Communicate with Kubernetes (API Server)
- Overview
- The Kubernetes API Server
- Kubernetes HTTP Request Flow
- Exercise 4.01: Starting Minikube with a Custom Set of Modules
- The Kubernetes API
- Scope of API Resources
- API Groups
- API Versions
- Exercise 4.02: Getting Information about API Resources
- How to Enable/Disable API Resources, Groups, or Versions
- Exercise 4.03: Enabling and Disabling API Groups and Versions on a Minikube Cluster
- Interacting with Clusters Using the Kubernetes API
- Exercise 4.04: Creating and Verifying a Deployment Using kubectl proxy and curl
- Direct Access to the Kubernetes API Using Authentication Credentials
- Activity 4.01: Creating a Deployment Using a ServiceAccount Identity
- Activity 4.01: Creating a Deployment Using a ServiceAccount Identity
- Summary
-
5. Pods
- Overview
- Pod Configuration
- Exercise 5.01: Creating a Pod with a Single Container
- Name
- Exercise 5.02: Creating a Pod in a Different Namespace by Specifying the Namespace in the CLI
- Exercise 5.03: Creating a Pod in a Different Namespace by Specifying the Namespace in the Pod Configuration YAML file
- Exercise 5.04: Changing the Namespace for All Subsequent kubectl Commands
- Node
- Exercise 5.05: Using CLI Commands to Create a Pod Running a Container
- Exercise 5.06: Creating a Pod Running a Container That Exposes a Port
- Exercise 5.07: Creating a Pod Running a Container with Resource Requirements
- Exercise 5.08: Creating a Pod with Resource Requests That Can't Be Met by Any of the Nodes
- Exercise 5.09: Creating a Pod with Multiple Containers Running Inside It
- Life Cycle of a Pod
- Probes/Health Checks
- Implementation of Probes
- Exercise 5.10: Creating a Pod Running a Container with a Liveness Probe and No Restart Policy
- Exercise 5.11: Creating a Pod Running a Container with a Liveness Probe and a Restart Policy
- Exercise 5.12: Creating a Pod Running a Container with a Readiness Probe
- Best Practices While Using Probes
- Activity 5.01: Deploying an Application in a Pod
- Activity 5.01: Deploying an Application in a Pod
- Summary
-
6. Labels and Annotations
- Overview
- Labels
- Why Do We Need Labels?
- Exercise 6.01: Creating a Pod with Labels
- Exercise 6.02: Adding Labels to a Running Pod
- Exercise 6.03: Modifying and/or Deleting Existing Labels for a Running Pod
- Selecting Kubernetes Objects Using Label Selectors
- Exercise 6.04: Selecting Pods Using Equality-Based Label Selectors
- Set-Based Selectors
- Exercise 6.05: Selecting Pods Using Set-Based Label Selectors
- Exercise 6.06: Selecting Pods Using a Mix of Label Selectors
- Annotations
- Exercise 6.07: Adding Annotations to Help with Application Debugging
- Working with Annotations
- Activity 6.01: Creating Pods with Labels/Annotations and Grouping Them as per Given Criteria
- Activity 6.01: Creating Pods with Labels/Annotations and Grouping Them as per Given Criteria
- Summary
- Survey I
-
7. Kubernetes Controllers
- Overview
- ReplicaSets
- Exercise 7.01: Creating a Simple ReplicaSet with nginx Containers
- Labels on the ReplicaSet
- Exercise 7.02: Deleting Pods Managed by a ReplicaSet
- Exercise 7.03: Creating a ReplicaSet Given That a Matching Pod Already Exists
- Exercise 7.04: Scaling a ReplicaSet after It Is Created
- Deployment
- Exercise 7.05: Creating a Simple Deployment with Nginx Containers
- Labels and Annotations on the Deployment
- Exercise 7.06: Rolling Back a Deployment
- StatefulSets
- DaemonSets
- Jobs
- Exercise 7.07: Creating a Simple Job That Finishes in Finite Time
- Activity 7.01: Creating a Deployment Running an Application
- Activity 7.01: Creating a Deployment Running an Application
- Summary
-
8. Service Discovery
- Overview
- Service
- Exercise 8.01: Creating a Simple NodePort Service with Nginx Containers
- ClusterIP Service
- Exercise 8.02: Creating a Simple ClusterIP Service with Nginx Containers
- Choosing a Custom IP Address for the Service
- Exercise 8.03: Creating a ClusterIP Service with a Custom IP
- LoadBalancer Service
- Activity 8.01: Creating a Service to Expose the Application Running on a Pod
- Activity 8.01: Creating a Service to Expose the Application Running on a Pod
- Summary
-
9. Storing and Reading Data on Disk
- Overview
- Volumes
- Exercise 9.01: Creating a Pod with an emptyDir Volume
- Exercise 9.02: Creating a Pod with an emptyDir Volume Shared by Three Containers
- Persistent Volumes
- PV Status
- How to Use Persistent Volumes
- Exercise 9.03: Creating a Pod That Uses PersistentVolume for Storage
- Dynamic Provisioning
- Activity 9.01: Creating a Pod That Uses a Dynamically Provisioned PersistentVolume
- Activity 9.01: Creating a Pod That Uses a Dynamically Provisioned PersistentVolume
- Summary
-
10. ConfigMaps and Secrets
- Overview
- What Is a ConfigMap?
- Exercise 10.01: Creating a ConfigMap from Literal Values and Mounting It on a Pod Using Environment Variables
- Defining a ConfigMap from a File and Loading It onto a Pod
- Exercise 10.02: Creating a ConfigMap from a File
- Exercise 10.03: Creating a ConfigMap from a Folder
- What Is a Secret?
- Exercise 10.04: Defining a Secret from Literal Values and Loading the Values onto the Pod as an Environment Variable
- Exercise 10.05: Defining a Secret from a File and Loading the Values onto the Pod as a File
- Exercise 10.06: Creating a TLS Secret
- Exercise 10.07: Creating a docker-registry Secret
- Activity 10.01: Using a ConfigMap and Secret to Promote an Application through Different Stages
- Activity 10.01: Using a ConfigMap and Secret to Promote an Application through Different Stages
- Summary
-
11. Build Your Own HA Cluster
- Overview
- How the Components of Kubernetes Work Together to Achieve High Availability
- Building a High-Availability Focused Kubernetes Cluster
- Exercise 11.01: Setting up Our Kubernetes Cluster
- Kubernetes Service Accounts
- Exercise 11.02: Deploying an Application on Our HA Cluster
- Activity 11.01: Testing the Resilience of a Highly Available Cluster
- Activity 11.01: Testing the Resilience of a Highly Available Cluster
- Deleting Our Cluster
- Summary
-
12. Your Application and HA
- Overview
- An Overview of Infrastructure Life Cycle Management
- Terraform
- Exercise 12.01: Creating an S3 Bucket with Terraform
- Exercise 12.02: Creating a Cluster with EKS Using Terraform
- Kubernetes Ingress
- Exercise 12.03: Deploying a Multi-Replica Non-HA Application in Kubernetes
- Working with Stateful Applications
- Exercise 12.04: Deploying an Application with State Management
- Activity 12.01: Expanding the State Management of Our Application
- Activity 12.01: Expanding the State Management of Our Application
- Summary
- Survey II
-
13. Runtime and Network Security in Kubernetes
- Overview
- Threat Modeling
- Kubernetes RBAC
- Exercise 13.01: Creating a Kubernetes RBAC ClusterRole
- NetworkPolicies
- Exercise 13.02: Creating a NetworkPolicy
- PodSecurityPolicy
- Exercise 13.03: Creating and Testing a PodSecurityPolicy
- Activity 13.01: Securing Our App
- Activity 13.01: Securing Our App
- Summary
-
14. Running Stateful Components in Kubernetes
- Overview
- Stateful Apps
- Further Refactoring Our Application
- Exercise 14.01: Deploying a Counter App with a MySQL Backend
- Exercise 14.02: Testing the Resilience of StatefulSet Data in PersistentVolumes
- Helm
- Exercise 14.03: Chart-ifying Our Redis-Based Counter Application
- Activity 14.01: Chart-ifying Our StatefulSet Deployment
- Activity 14.01: Chart-ifying Our StatefulSet Deployment
- Summary
-
15. Monitoring and Autoscaling in Kubernetes
- Overview
- Kubernetes Monitoring
- Exercise 15.01: Setting up the Metrics Server and Observing Kubernetes Objects
- Autoscaling in Kubernetes
- Exercise 15.02: Scaling Workloads in Kubernetes
- ClusterAutoscaler
- Exercise 15.03: Configuring the ClusterAutoscaler
- Activity 15.01: Autoscaling Our Cluster Using ClusterAutoscaler
- Activity 15.01: Autoscaling Our Cluster Using ClusterAutoscaler
- Deleting Your Cluster Resources
- Summary
-
16. Kubernetes Admission Controllers
- Overview
- How Admission Controllers Work
- Creating Controllers with Custom Logic
- How a Webhook Works
- Exercise 16.01: Modifying a ConfigMap Object through a Patch
- Guidelines for Building a Mutating Admission WebHook
- Exercise 16.02: Deploying a Webhook
- Configuring the Webhook to Work with Kubernetes
- Activity 16.01: Creating a Mutating Webhook That Adds an Annotation to a Pod
- Activity 16.01: Creating a Mutating Webhook That Adds an Annotation to a Pod
- Validating a Webhook
- Activity 16.02: Creating a Validating Webhook That Checks for a Label in a Pod
- Activity 16.02: Creating a Validating Webhook That Checks for a Label in a Pod
- Controlling the Effect of a Webhook on Selected Namespaces
- Exercise 16.03: Creating a Validating Webhook with the Namespace Selector Defined
- Summary
-
17. Advanced Scheduling in Kubernetes
- Overview
- The Kubernetes Scheduler
- Managing the Kubernetes Scheduler
- Exercise 17.01: Running a Pod with Node Affinity
- Pod Affinity and Anti-Affinity
- Exercise 17.02: Running Pods with Pod Affinity
- Pod Priority
- Exercise 17.03: Pod Priority and Preemption
- Taints and Tolerations
- Exercise 17.04: Taints and Tolerations
- Using a Custom Kubernetes Scheduler
- Activity 17.01: Configuring a Kubernetes Scheduler to Schedule Pods
- Activity 17.01: Configuring a Kubernetes Scheduler to Schedule Pods
- Summary
-
18. Upgrading Your Cluster without Downtime
- Overview
- The Need to Upgrade Your Kubernetes Cluster
- Kubernetes Components – Refresher
- The Upgrade Process
- Exercise 18.01: Taking a Snapshot of the etcd Datastore
- Draining a Node and Making It Non-Schedulable
- Exercise 18.02: Draining All the Pods from the Nodes
- Upgrading Kubernetes Master Components
- Exercise 18.03: Upgrading Kubernetes Master Components
- Upgrading Kubernetes Worker Nodes
- Exercise 18.04: Upgrading the Worker Nodes
- Activity 18.01: Upgrading the Kubernetes Platform from Version 1.15.7 to 1.15.10
- Activity 18.01: Upgrading the Kubernetes Platform from Version 1.15.7 to 1.15.10
- Summary
- Survey III
-
19. Custom Resource Definitions in Kubernetes
- Overview
- What Is a Custom Controller?
- Why We Need Custom Resources?
- How Our Custom Resources Are Defined
- Exercise 19.01: Defining a CRD
- Exercise 19.02: Defining a CR Using a CRD
- Writing the Custom Controller
- Activity 19.01: CRD and Custom Controller in Action
- Activity 19.01: CRD and Custom Controller in Action
- Adding Data to Our Custom Resource
- Exercise 19.03: Adding Custom Information to the CR List Command
- Summary
Join Over 85,000 Satisfied Students
Here is what they have to say about Packt workshops:
Amazing
Federico Patito
This course is excelent, with this course you learn a lot of topics and each topic has some exercises that are very u...
Read MoreThis course is excelent, with this course you learn a lot of topics and each topic has some exercises that are very useful.
Read LessVery detailed workshop with good excercises and activites
Ajijul Hakim Abid
Very good in-depth workshop in python. Goes over almost every topics but some topics could have a more detailed expla...
Read MoreVery good in-depth workshop in python. Goes over almost every topics but some topics could have a more detailed explanation. Would't recommend for someone totally new to programming.
Read LessGreat Introductory Course
mohammad nazeri
This course covers basic Python syntax, how to develop software in python, how to work in a team, and an introduction...
Read MoreThis course covers basic Python syntax, how to develop software in python, how to work in a team, and an introduction to data science and machine learning with Python.
Read LessAn excellent way to learn Python
Juan Alberto Cañero Tamayo
I like the methodology applied to this workshop, it starts from the basic and a good explanation of the subjects plus...
Read MoreI like the methodology applied to this workshop, it starts from the basic and a good explanation of the subjects plus a plenty of examples helps you to understand Python.
Read Less5 Stars for the content !
Mahesh Deshpande
I belong to mechanical background and started leaning any kind of programming in my life with this course. This is to...
Read MoreI belong to mechanical background and started leaning any kind of programming in my life with this course. This is too good for a beginner like me. The content is properly given and exercise and activities are also good. Video explainations help a lot ! The only problem I faced was the kernel busy problem in the Jupyter IDE. Otherwise I found Jupyter most user friendly as compared to other IDEs. Thanks Packt for this course !
Read LessThe most satisfying python workshop i ever attended!
Sanket Gadge
I have attended many python workshops, but this one is really great, the content is super awesome. Actually all the c...
Read MoreI have attended many python workshops, but this one is really great, the content is super awesome. Actually all the courses workshops i ever attended they never taught me (for ex. say logging) everything in python, but this workshop even covers the python from beginner to advanced. With activities included, this workshop made me think more and more rather than just going through the content and reading text and videos. I learned a ton here. Thank you for all the coaches who creating this extra ordinary content.
Read LessDATA SCIENCE Workshop
LALIT JADHAV
This course format and is very easily understandable. Workshop Certificate structure are very wonderful. Thanks a lot...
Read MoreThis course format and is very easily understandable. Workshop Certificate structure are very wonderful. Thanks a lot for Packt👈
Read LessExcellent course !!
Luiz Pellegrini
Very well structured, with good examples and a rational sequence !! An additional feature is that it is updated and d...
Read MoreVery well structured, with good examples and a rational sequence !! An additional feature is that it is updated and designed run on Jupyter Notebooks!!
Read LessCourse content
Edward Amankwah
The course presents a great way to data visualization techniques and it also opens up a lot of opportunities for data...
Read MoreThe course presents a great way to data visualization techniques and it also opens up a lot of opportunities for data scientist to explore their dataset before and after data modelling.
Read LessMany disciplines in Data Visualization
Thomas Hopf
Taking into account Python and therefore Jupyter Notebooks as a "platform" isn't a problem at all, since it's common....
Read MoreTaking into account Python and therefore Jupyter Notebooks as a "platform" isn't a problem at all, since it's common. Setting up by "cloning" a github repository was very easy. The toolboxes for visualization in focus are Matplotlib (famous), Seaborn, Geoplotlib. The order makes sense and in order to get Python basics pandas and numpy are also introduced first. Finally Bokeh is introduced as an interactive tool with no deep-dive but explaining the concept and options. At the end there will be a summary. The quizzes are not that easy in my opinion and you really should follow every topic and do the exersices, activities. Thanks for this perfect designed workshop course and the good example datasets. Greetz, Tommy
Read LessSimple and straight-forward intro
Geoffrey Letsoalo
The introduction is simple and very informative in terms of estalishing and getting the development environment going...
Read MoreThe introduction is simple and very informative in terms of estalishing and getting the development environment going. Very intuitive!
Read LessDifferent and made for people like me
Muizz Lateef
I have been watching tutorial videos for over 6 months now and not really confident yet, but few minutes into this te...
Read MoreI have been watching tutorial videos for over 6 months now and not really confident yet, but few minutes into this text approach and i am already getting the whole idea
Read LessExcellent Course Overall
Jon Hill
Had some familiarity with Python before starting the course and working through the exercises and activities, certain...
Read MoreHad some familiarity with Python before starting the course and working through the exercises and activities, certainly picked up some things that I had missed before and filled some gaps in my knowledge. Course needs a bit of proof-reading as a number of errors sprinkled throughout. Found the Activities needed a little more guidance rather than being vague but worked out in the end. Overall excellent course, especially for those beginning with Python as covers a full spectrum of Python requirements. Many thanks
Read LessReview for the Python Workshop
Samapriya Trivedi
This workshop provides one of the best educative content for the Python available on internet. Got to know a lot abou...
Read MoreThis workshop provides one of the best educative content for the Python available on internet. Got to know a lot about Python and it's working in a very elaborate manner.
Read LessLearning Python is Easier
Jayabalan Ravichandiran
Python concepts and using those in practice , made easier to know about python. Core concepts are explained in detail...
Read MorePython concepts and using those in practice , made easier to know about python. Core concepts are explained in detail . The activities enables to play & know python more than reading through only concepts . The Best of python course is here ....
Read LessReal Python lover... The Packt.
Jonty Rhodes
What can I say this website is very good for beginners. Although this website enhancing my programming experience al...
Read MoreWhat can I say this website is very good for beginners. Although this website enhancing my programming experience also. keep it up. May Allah bless you.
Read LessAttila Sebők's review
Attila Sebők
A Python Workshop kellemes meglepetés volt számomra. Tetszett a tema csoportosítása. Sokat tanultam a Workshopból. Am...
Read MoreA Python Workshop kellemes meglepetés volt számomra. Tetszett a tema csoportosítása. Sokat tanultam a Workshopból. Ami lehetne jobb: naprakész hibajavítás a leckékben és a tesztekben.
Read LessWonderful
Varun Kanthety
This is a wonderful course to dive deeply into the main features of JavaScript. Without any hesitation, I highly reco...
Read MoreThis is a wonderful course to dive deeply into the main features of JavaScript. Without any hesitation, I highly recommend this workshop to learn JavaScript.
Read LessGood course on JavaScript... Super Easy Language, Every e...
Kuntal Bhowmick
The Workshop is really good and covers a lot of content starting from basics till advance. The Workshop explain ho...
Read MoreThe Workshop is really good and covers a lot of content starting from basics till advance. The Workshop explain how things work by using simple language, so you don't feel like you're just copying code—you're actually understanding what you're writing, and why. In particular, I appreciate this JavaScript Workshop because of the exercise and the activities given for each and every concept. The workshop also show students how to problem-solve like a developer: what to type into Google when you're stuck, how to get to the bottom of an error message, etc. I think the understanding the core concept was very beneficial and think it would help me become a better developer in the future. Amazing breakdowns that really help fill in knowledge gaps. Great exercises with fully detailed explanations. I am satisfied with the course. I highly recommend this course to anyone who wants to learn JS(JavaScript). Edit: I want to add another thing. The quiz given after every section is very important. It gives me how much I understand the section. the quiz also displays the explanation of each answer along with whether my selected answer is right or wrong.
Read LessProgramming fundamentals
Oteri Eyenike
I was able to understand the conditional statement, data types, the object of properties and I like every aspect of t...
Read MoreI was able to understand the conditional statement, data types, the object of properties and I like every aspect of the course.
Read LessContent
Adedeji Adelanwa
It is quite informative and helpfully. A real refresher and eye opener for me. Though there are a few typos and sente...
Read MoreIt is quite informative and helpfully. A real refresher and eye opener for me. Though there are a few typos and sentence misplacement and also video. I don't mind helping out in correcting the errors
Read LessA must for those aiming to become true web developers
Jose B
Despite minor aspects with tests (the one focused on PHP), it is a very good way to teach yourself JavaScript coverin...
Read MoreDespite minor aspects with tests (the one focused on PHP), it is a very good way to teach yourself JavaScript covering the latest ECMA standards,
Read LessOne of the best place to learn
NAGA SANKARA SAI KARTHIK MUKKU
This workshop course is not a pack of subject but also helps in connecting real-world and also provide wide-range of ...
Read MoreThis workshop course is not a pack of subject but also helps in connecting real-world and also provide wide-range of concepts which make this workshop stand out of the box
Read LessGreat workshop
Djoko Cahyo Utomo Lieharyani
This workshop gives a provide broad insight into python, more to practical exercises and activities. There are some p...
Read MoreThis workshop gives a provide broad insight into python, more to practical exercises and activities. There are some problems tough, like some wrong script, redundant question, and no clear definition on some part (around 15% of 100% I guess), but the discussion part is helpful, coz sometimes with reading discussion part make some problem clear. My suggestion is to make the workshop perfect by validating the disscussion part.
Read LessExcellent!
Marcos Souza
I was very surprised by the quality of this course. Its well organized, full of examples on the subjects it is teachi...
Read MoreI was very surprised by the quality of this course. Its well organized, full of examples on the subjects it is teaching, relevant quizzes and exercises, and even videos. Its by far the best free course i've ever seen.
Read LessCourse content
Edward Amankwah
A great way to review the length and breath of Python language. It introduces more concepts that can be pursued furth...
Read MoreA great way to review the length and breath of Python language. It introduces more concepts that can be pursued further which I really like, especially for data science.
Read LessGet Verified
Complete The Kubernetes Workshop to unlock your very own Packt certificate.
Take A Step Forward
There has never been a better time to get started with Kubernetes.
-
$39.99
$39.99The Kubernetes Workshop
Unlock one year of full, unlimited access!