Technologies like Docker have made it easier to continuously deploy applications across any number of host servers. They eliminate the need for having your own virtual machine because all the code and configuration settings you need to run your app is packaged into one container.
Google created Kubernetes to automate a number of tasks and processes involved in managing containerized apps. You can use Kubernetes to automatically deploy, scale, and decommission containerized applications. Of course, Kubernetes is not a silver bullet, and Kubernetes deployments have opened up a new set of infrastructure security concerns for DevOps teams. That’s why it’s important to be well versed in how to work with Kubernetes, as well as the tactics and solutions you can employ to create a more secure environment. For instance, Threat Stack now provides security and IT leaders transitioning to container-based infrastructure with the expertise and enhanced security visibility necessary to effectively manage the addition of container-based cloud environments through our Threat Stack Cloud Security Platform® and Threat Stack Cloud SecOps Program℠.
If you are planning to take a systematic approach to learning Kubernetes, then you should be on the lookout for quality tutorials. The good news is that a lot of resources are available online. There are also more structured courses that sometimes offer certification — if you’re willing to pay, that is.
In this blog post, we’ve identified 50 Kubernetes tutorials that are worth a look, including:
Beginner Kubernetes Tutorials
If you have always wanted to learn how to use Kubernetes, you should start here with this Udemy course that Stefan Thorpe and Samy Mkacher developed.
“Kubernetes from A to Z” includes more than two dozen lectures that span two hours. These will introduce you to the technology and include an explanation of what it is and why you should use it. A to Z will also familiarize you with different Kubernetes use cases, and introduce you to minikube and kubeadm. Then it will get you started with pods, services, and deployments.
“Fundamentals of Kubernetes” is another Udemy module that will teach you about the basics of Kubernetes, how to deploy applications, and how to manage configuration data. It will take you through the many features of Kubernetes, as well as explain how to work with labels, nodes, clusters, and pods. The entire lesson takes around two hours and 18 minutes to finish and includes 28 lectures.
This module is perfect for beginners because all you need to have is a good grasp of basic IT concepts.
What you will learn:
- Creating a Kubernetes environment on both Windows and Mac
- Deploying a sample Kubernetes app
- Managing an application using the dashboard
- Deploying applications with APIs and databases
This tutorial is a recorded session with Reactive Ops’s Sarah Zelechoski. It will teach you how to deploy a Web application onto Kubernetes. It starts with an introduction to Kubernetes and its uses. Then it will introduce you to the architecture, primitives, and other parts of Kubernetes. You will learn how to create a Google cloud account, and then how to deploy your first cluster, among other things.
You will need about two hours and 25 minutes to finish the video. You can download the different things you need as well as the Slide Deck so it’s easier for you to follow along with the video. Links are listed on the YouTube video description.
If this is the first time you’ve heard about Kubernetes, then you should enroll in this Udemy course. Created by Mumshad Mannambeth, it will help you:
- Understand the fundamentals of Kubernetes
- Learn how to develop configuration files using YAML
- Learn how to deploy Kubernetes Clusters on your own system, as well as on Google Cloud Platform
- Deploy your applications on Kubernetes
- Learn how to set up services, replica sets, and deployments
This is perfect if you are still a beginner in DevOps.
A Udemy course by Peng Xiao, “Learning Docker and Kubernetes by Lab” will introduce you to both technologies. It will also teach you how to deploy your applications using Docker Swarm, Docker Compose, or Kubernetes. With close to five dozen lectures, this course lasts four hours and 41 minutes.
What you will learn:
- Setting up Docker Lab
- Using Docker command line
- Networking with Docker
- Data persistence
- Creating Docker applications
- Using Docker Swarm
- Setting up Kubernetes
- Basic Kubernetes concepts
- Using pods and replica set
Note: To take full advantage of this course, you should have a working knowledge of at least one programming language, such as Python.
Did you know that Kubernetes comes from the Greek word that means “pilot”? “An Intro to Google’s Kubernetes and How to Use It” will tell you that bit of interesting information and a lot more. It is written to give you a short rundown of what Docker and Kubernetes are, why you should use Kubernetes, and an overview of the many components of Kubernetes.
Then the interesting part: teaching you how to use Kubernetes, as well as giving you a list of useful links you can go to.
Note: Cloud solutions provider CenturyLink has several other tutorials on Kubernetes, which you can find here. These include:
- Drive a Full Lifecycle with Jenkins + Kubernetes
- Deploying to Kubernetes with Panamax
- Kubernetes on Bare Metal: When Low Network Latency is Key
- Diagnostics to Ease Installation and Troubleshooting of ElasticKube
- Installing WordPress in a Docker Container on the CenturyLink Cloud
- Panamax Announces Remote Agent Deployments
- Making Clustered Infra Look Like One Big Server with Mesosphere, with Florian Leibert
- How Does RedHat’s OpenShift Work With Docker
- SDK & Tools
“Kubernetes 2018: A Comprehensive Course” is a complete tutorial that will help you get a better understanding of Kubernetes and its many components. It will teach you everything from installing, using, managing, and then administering Kubernetes. You will also learn how networking works for Kubernetes, how to auto-scale it, and how to roll out new features and updates. It also touches on best practices.
If you need to learn Kubernetes and need to learn it fast, this is the course for you. You do not need a prior understanding of how it works. This course is also great for software developers who want to use Kubernetes in deployment, testing, and development processes. The course is for everyone who wants to use containers to deploy their apps.
Okay, so you already know how to install Kubernetes and how to work with it on your local computer or on Google Cloud. Now you need to learn how to deploy applications using Kubernetes on AWS.
Fortunately, Weaveworks has you covered with “Kubernetes on AWS: Tutorial and Best Practices for Deployment.” This tutorial will tell you why you should rely on Kubernetes even when you are on Amazon Web Services. It will also tell you about the use of Amazon Elastic Container Service and provide a rundown of AWS features you can use.
The tutorial also discusses how to define Ingress in Amazon Web Services, as well as other points.
“Introduction to Kubernetes using Docker” allows you to hit two birds with one stone. Offering three dozen lectures and running close to five hours, this is one of the best introductions to both Docker and Kubernetes.
You can learn how to:
- Install both Docker and Kubernetes from the ground up
- Properly run and manage containers
- Create pods, services, and deployments
- Create Docker images
- Configure Docker properly
You will also get hands-on with real-world projects where you can apply everything you have just learned.
With “Learn DevOps: The Complete Kubernetes Course,” you will learn how to run and manage containerized applications while also discovering how to create, deploy, and manage Kubernetes.
Not only do you get about nine hours of video content on demand, you also receive one article, two practice tests, and a certificate when you complete the course.
- Installing and configuring Kubernetes on AWS and on local machines
- Becoming familiar with the components
- Understanding the architecture
- Understanding the concepts and differences of stateful and stateless clusters
11. Getting Started with Kubernetes on AWS
Some tutorials are great, but you won’t learn anything if you’re easily bored with what you are watching. It could be because of the speaker, being a tad too formal. Or it could be because you are looking for particular information, and skipping ahead won’t be helpful because you simply don’t know where to skip to and you might end up missing the exact part you are looking for.
The good news is that this is a series of videos that won’t give you any of these headaches. If you are looking for information on Kubernetes and AWS, then you should check out Jeffrey Taylor’s “Getting Started with Kubernetes on AWS” series.
Taylor divided his Web cast into nine different parts:
- Part 1. Kops and Kubectl
- Part 2. Kops and Route53
- Part 3. More Kops and Route53
- Part 4. Hapi.js Web server
- Part 5. Creating a Dockerfile
- Part 6. Running a container locally
- Part 7. Pushing to ECR
- Part 8. Deploying a pod
- Part 9. Deployed!
Getting yourself familiar with Kubernetes, or trying to get someone to learn it? You might want to read or send them this article.
John Julien talks about what Kubernetes is, why you should use it, and what the best practices are. The article also touches on the trends and future of the technology.
This is a good way to introduce somebody to Kubernetes without scaring them away with too many technical details.
If you want to deploy containerized applications by using Kubernetes, but do not want to go through an intensive learning session, this quick start guide is perfect for you. It will take you through the many steps of deploying your apps – from choosing a shell to configuring your cloud settings, to creating and deploying your Kubernetes Engine Cluster, right down to clean up.
This interactive tutorial comes from Kubernetes.io and will walk you through the fundamentals of Kubernetes. You will go through six modules that touch on creating a cluster, deploying, exploring, and exposing your app, and then finally scaling up and updating your app.
You will learn about the most significant Kubernetes concepts, functionalities, and features.
Prometheus is a good tool if you want to monitor your containerized environments. If you are still a beginner and would like to get into using Prometheus, this is a good video start with.
Hubert Strobitzer talks about:
- The architecture of Prometheus
- How to run both Grafana and Prometheus inside Docker
- Using exporters
- Creating a simple dashboard using Grafana
- Writing custom metrics when dealing with Spring Boot apps
Price: Free, $99 for a certificate
If your team is beginning to use Kubernetes for container orchestration and you need guidelines on how to start transforming your organization with Kubernetes and cloud native patterns, if you’d like to simplify software container orchestration and find a way to expand your use of Kubernetes without adding infrastructure complexity, this course is for you.
Taught by Neependra Khare of CloudYuga Technologies, this is a self-paced course. You can complete it in as little as five weeks if you work on it for two to three hours every week. After you finish, you are expected to have a strong foundation in Kubernetes, including how it originated, its architecture, and a variety of other things you need to know.
You will also learn about the components and building blocks of Kubernetes and how to access and set up a cluster using Minikube. Finally, the course will give you an appreciation of how useful Kubernetes is and how to get into various communities.
Custom Resource Definition and outside API servers enable developers to create and store resources within a Kubernetes cluster.
Red Hat software engineer Maciej Szulik will take you through the basics of this process as well as everything you need to know. This course, aimed at beginners, will teach you how controllers work, how to set up shared informers, and how to write a simple controller. You will also learn how to handle errors.
Managing your containerized application’s environment can be quite challenging, and Kubernetes can help. Using Kubernetes, you can easily set up applications in a container with a very simple CI/CD pipeline.
Continuous integration and delivery is a set of operation principles and best practices that allow developers to institute code changes in a reliable manner and as frequently as necessary.
With this tutorial, you will learn how to build and deploy applications, as well as discover Kubernetes concepts and CI/CD principles.
This tutorial has four parts:
- Part 1: Overview
- Part 2: Set Up a CI/CD Pipeline with a Jenkins Pod in Kubernetes
- Part 3: Run and Scale a Distributed Crossword Puzzle App with CI/CD on Kubernetes
- Part 4: Set Up CI/CD for a Distributed Crossword Puzzle App on Kubernetes
Service abstraction lets applications find and talk to one another. This tutorial will teach you about these services, what occurs when a packet is sent to these services, and how to choose the right service for your requirements.
After this tutorial, you will be able to expose your application via different kinds of Services. You will know how each Service type handles source IP NAT, and the tradeoffs that are involved in preserving source IP.
This tutorial discusses three Service types: ClusterIP, NodePort, and LoadBalancer.
This tutorial will teach you the basics of managing applications with StatefulSets, guide you through the creation, deletion, and scaling of Pods in StatefulSets, as well as teach you how to update these. It will also teach you more about pod management policy.
If you want more of a deep dive, you can check out the tutorial on how to deploy Cassandra with StatefulSets here. This tutorial will teach you how to use a StatefulSet, and then how to validate, modify, and delete it.
Intermediate Kubernetes Tutorials
Google’s Kelsey Hightower spoke at KubeCon 2017. The premise of this talk is to teach you how to do Kubernetes the easy way. Developers will get some great tips and tricks on how to work with Kubernetes, as well as several how-tos from Google’s own expert. An added bonus: Hightower makes it all very fun and easy to follow!
If you have your basics down pat, then you are ready to start using Kubernetes to build, manage, and deploy your containers. However, this is not enough. You need to learn best practices, and there is no better way to do that than by listening to Google’s Sandeep Dinesh in this video from Weaveworks.
In this hour-long video, Dinesh gives a rundown of best practices, tips, and tricks for using Kubernetes. The guidelines include not trusting arbitrary base images, using Docker base images, how to use non-root user while inside a container, making file systems read-only, and a great deal more!
This Udemy tutorial is a two-in-one course that delves into both Java and Kubernetes. It will take you through everything you need to know about Java programming, using Google Cloud Console, Docker, Google Cloud Shell, Kubernetes, and related technologies.
The Kubernetes part of the course has more than two dozen lectures. It touches on the basics of Kubernetes, working with Google Container Engine and Kubernetes, and understanding the Kubernetes interface. There is also a 70-minute deep dive into Kubernetes.
This tutorial is great for beginners and for more advanced users, but it is specifically aimed at DevOps engineers.
While this video is geared towards using Spring Boot for creating a microservice in Java, it does delve into using Maven for containerization and then deploying these microservices using Kubernetes. This video features Google’s Ray Tsang and Bret McGowen, so there is a lot to learn, such as:
- Using Spring Boot
- Using Maven plugins to build and generate Docker images
- Basic architecture and configurations for Spring Boot
- Tips for faster startup
- Deploying microservices into Kubernetes
You will also learn how to:
- Define pods and services
- Link microservices to Redis in Kubernetes
- Do rolling application upgrades
If you hate how-to videos, then this book is for you. Written by Kubernetes experts Kelsey Hightower, Brendan Burns, and Joe Beda, Kubernetes Up & Running is a practical guide to everything related to Kubernetes and containerization.
You will also discover how to use APIs and automation tools for a wide variety of use cases, including Raspberry Pi, machine learning, and online services. In addition, you will get to discover specialized objects that are necessary for running apps in production, and how to roll out new versions of your software without encountering errors and without taking your entire system offline.
Plus, you’ll appreciate the real-world examples that the authors have included in the book, giving you a guide on how to develop and deploy these applications in Kubernetes.
This tutorial will show you how to secure your Kubernetes deployments – from development right through production. Listen to Docker’s Jenny Fong and David Yu as they describe how to use the tools and processes that are included in Docker Enterprise Edition, which are aimed at securing your deployments end to end.
This tutorial runs for 48 minutes.
“DevOps Toolkit: Learn Kubernetes with Practical Exercises!” comes with downloadable resources. You will learn about Kubernetes concepts, components, architecture, deployments, and more. You will receive 27 lectures designed to get you familiar with Kubernetes.
This course is not for total beginners. It will be helpful to have some basic knowledge of images and containers as well as some understanding of virtual machines.
Christian Melendez takes you through the basics of Azure Container Service (AKS) and Azure Container Instances (ACI), and how you can use both with Kubernetes.
This article provides a step-by-step guide on the two methods you can use to create a cluster on Microsoft Azure, complete with screenshots and easy-to-understand instructions.
In this tutorial, Google’s Kelsey Hightower and Aparna Sinha will teach you how to set up Kubernetes clusters to ensure scale and availability across zones and regions.
This video covers storage provisioning, cluster federation, and the latest in scalability.
This tutorial was written by Google and details the steps you need to follow to deploy your application with Kubernetes using Google Cloud Shell or command line tools.
It will teach you how to:
- Create and upload the container image
- Run the container
- Create a container cluster and deploy the application
- Take your application online
- Scale your application
- Deploy newer versions of the same app
- Clean up
Google gives you a more in-depth course that it developed with the help of Kubernetes superstars like Carter Mogran and Kelsey Hightower, as well as Adrian Cockcroft, who was formerly with Netflix.
This course is not for beginners, so you need to know the basics of Kubernetes first. Through this course, you will learn how to:
- Containerize an application by creating Docker config files and build processes to produce all the necessary Docker images
- Configure and launch an auto-scaling, self-healing Kubernetes cluster
- Use Kubernetes to manage deploying, scaling, and updating your applications
- Employ best practices for using containers in general, and specifically Kubernetes, when architecting and developing new microservices
This free course combines rich content and interactive quizzes. It is also self-paced, but most people should be able to master its objectives within a month or so.
This course will help you learn how to turn a Node.js application into a containerized application with Kubernetes. You will learn how to:
- Create a MiniKube cluster and a Docker image
- Create deployments and services
- Update applications you have
- Activate add-ons
- Clean up
You’ll need Minikube for this course. If you have a Mac, you can just use Homebrew to install it to your machine.
Listen to Intel’s Samuel Ortiz and Red Hat’s Fabian Deutsch as they talk about how to improve the security and reliability of Kubernetes workloads by using hardware virtualization.
Gain insights from both Red Hat and Intel, as well as from the complementary approaches offered by KubeVirt and Kata Containers. Learn how to use CPU virtualization to make your workload security even more secure.
This talk is for intermediate DevOps who already know how to work with Kubernetes, but need to make their workloads more secure.
Kubernetes comes equipped with its own data, and you can receive a lot of insights when you look at it. For instance, you can receive information on contributors, when they contributed, and the sort of contributions they made to your application — which is very useful for community and team managers and SIG leads.
Red Hat’s Josh Berkus and CNCF’s Łukasz Gryglicki will tell you what data you can obtain and how to gain insights from these. You can also request additional data charts or tips on how to create them yourself.
AppArmor is a kernel security module for Linux that you can on top of the standard Linux group- and user-based permissions. AppArmor can help you to run a more secure deployment by restricting what containers are allowed to do, and/or provide better auditing through system logs.
In this tutorial, you will:
- See an example of how to load a profile on a node
- Learn how to enforce the profile on a Pod
- Learn how to check that the profile is loaded
- See what happens when a profile is violated
- See what happens when a profile cannot be loaded
Meant for intermediate users, “Building a Fault-Tolerant Custom Resources Controller on Kubernetes” will teach you how to do just that.
IBM’s Morgan Bauer and Srinivas Brahmaroutu will teach you how to manage your customer resources, the difference between clustered and namespaced CRDs, and how to manage unexpected events coming from API servers.
Pod security policies and role-based access control are two of the most prevalent ways to secure your Kubernetes cluster. Using both, you can have policies and roles that can help limit user level access.
This tutorial will help you understand more about RBAC and PSP, including what these are and how to implement them. You will learn about:
- Role and ClusterRole
- How to bind a Role and ClusterRole
- Using GiantSwarm
- Managing access rights
- How to run applications that require privileged access
The tutorial also provides resources for further reading.
Admission controllers are often required so you can use Kubernetes’ advanced features.
This tutorial will teach you:
- What admission controllers are
- Why you need to use admission controllers
- How to turn an admission controller on or off
- What each type of admission controller does, including AlwaysPullImage, DefaultStorageClass, DenyEscalatingExec, ExtendResourceToleration, among many others
- What recommended set of admission controllers to use
Google’s software engineer Rohit Agarwal talks about why it is necessary to make Kubernetes aware of GPUs and other resources. This tutorial delves into how Kubernetes supports GPUs, and also explores best practices for app developers who use GPUs and Kubernetes.
From this, you will learn how to manage GPU drivers, GPU scheduling, GPU management, and device plugins. Agarwal also talks about the future of GPUs and other devices and hardware accelerators in Kubernetes.
Microsoft software engineer Carolyn Van Slyck and IBM staff software engineer Jonathan Berkhahn teach the basics of Kubectl plugins.
You will learn how to add customized commands to Kubectl and be able to create your own plugin. This is a good skill to have because plugins can introduce powerful commands that could help your application better interact with Kubernetes. This will help you save time and avoid mistakes from wrongly inputting code.
Berkhahn and Van Slyck talk about their experience creating and developing a Kubectl plugin while working with Kubernetes Service Catalog. This content is great for intermediate users such as those who are looking to build custom resources for Kubernetes, contractors who want to add specific functions into their Kubernetes environment, or those who are just looking to automate simple commands.
Advanced Kubernetes Tutorials
If you are ready to move from the basics of Kubernetes to something more advanced, check out “Learn DevOps: Advanced Kubernetes Usage.”
This course is almost three and a half hours long. Its 34 lectures cover logging, authorization, authentication, packaging, federation, scheduling, and monitoring, among other topics.
Created by Edward Viaene, this course is aimed at those who have already used Kubernetes and know how to set up a Kubernetes cluster but are still in the dark when it comes to the more advanced aspects of the platform. It also introduces logging using Kibana, Fluetd, LogTrail, using Auth0, RBAC, Helm, Spinnaker, kubefed, Linkerd, and Prometheus. Support files and course materials are provided.
There are occasions when you would prefer to build your own Kubernetes clusters. However, you might not have any idea what tools and installers to use. WeaveWorks has developed this tutorial for those who want to build custom clusters. It begins with the hard way to do things, and then launches into alternatives for installing Kubernetes. It also includes a discussion on Terraform and Ansible.
The tutorial discusses different installers you can use, including kops, Kubeadm, and kubicorn. It outlines the pros and cons of every installer and helps you decide on your own. You will also learn how to use these tools with a step-by-step guide, and will be given links to other useful resources.
For developers who want to learn about deploying their applications using Kubernetes on Amazon, this guide will tell you more about Amazon Elastic Container Service for Kubernetes (EKS). Specifically, this guide provides information on:
- Getting Started With Amazon EKS
- Creating Your Amazon EKS Cluster
- Configuring kubectl for Amazon EKS
- Launching and Configuring Amazon EKS Worker Nodes
- Launching a Guest Book Application
- Cleaning Up Guest Book Objects
If you have Spark applications in containers, you should watch “Scalable Monitoring Using Prometheus with Apache Spark.”
Red Hat’s Principal software engineer Diane Feddema and software engineer Zak Hassan show how to use different tools to make performance monitoring of Kubernetes easier, as well as how to identify which configuration settings are optimal.
You will learn more about Prometheus and how you can use it to monitor and then archive performance data from your application’s environment.
Listen to IBM fellow Jason McGee talk about the IBM Cloud Container service and its advanced features on how to build cloud native apps without worrying about security, management, and scaling.
Operators automate tasks related to Kubernetes, thus enabling you to focus more on developing your applications. However, these operators are not that easy to create, and you would need to be an expert on how Kubernetes works in order to build and implement them.
In this tutorial, Red Hat’s CoreOS CTO Brandon Philips talks about how to create your own operators so you have more time to work on your applications.
While most courses and tutorials focus on the basics, best practices, and how to use Kubernetes, “Anatomy of a Production Kubernetes Outage” will tell you what to expect in the event of an outage.
This talk was given by Oliver Beattie, Head of Engineering, Monzo Bank, based on their company’s experience. It discusses the causes of the Kubernete’s outage that affected Monzo, as well as how it affected them. It also provides insights on how to design and manage Kubernetes from their experience.
This tutorial provides a real-world example of how to configure Redis using a ConfigMap.
After this course, you will be able to:
- Create a ConfigMap
- Create a pod specification using the ConfigMap
- Create the pod
- Verify that the configuration was correctly applied
One benefit of working with Kubernetes is that there is a community you can turn to if you need help with deployment. This same community has been writing and developing new features over time. These new features are being deployed as external controllers.
In this tutorial, Alena Prokharchyk ( Principal Software Engineer, Rancher Labs, Inc.) tells you more about writing these extensions using custom resource definition. She takes you through the complete lifecycle for CRD resources – from defining clients, schema, and types to using informers to control resource. You will learn how to leverage object’s fields, such as finalizers, owner references, spec, status and metadata, and conditions. Prokharchyk also speaks about the challenges of CRD management that you should expect to encounter, as well as suggested solutions for each.
Morgan Bauer is an open source contributor at IBM, while Sriniva Brahmaroutu works as a software engineer for the same company. In this talk, Bauer and Brahmaroutu delve into custom resource definition. CRD has long been regarded as a good way to extend the capabilities of Kubernetes. You will also learn how to manage custom resources and controllers. The two share their experiences in leader election, the difference between clustered CRDs and namespaced CRDs, and how to manage and respond to unexpected events from APIServers, among other things.
And Even More . . .
As you can see from this post, there’s a huge array of Kubernetes materials that you can watch, read, and join. A lot of these are freely available on the Web, and a number are taught by some of the most renowned experts in the technology. These people come from Google, IBM, and other top tech companies to share their insights, experience, and how-tos on how to better understand and use Kubernetes.
If you want still more resources, Kubernetes offers a collection of tutorials, and you can also ask the Kubernetes community, review Kubernetes documentation, and learn from the case studies they share.