We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Learn DevOps

The Complete Kubernetes Course

Edward Viaene

This course will help you to gain understanding how to deploy, use, and maintain your applications on Kubernetes. If you are into DevOps, this is a technology you need to master. Kubernetes has gained a lot of popularity lately and it is a well sought skill by companies.

Read more

This course will help you to gain understanding how to deploy, use, and maintain your applications on Kubernetes. If you are into DevOps, this is a technology you need to master. Kubernetes has gained a lot of popularity lately and it is a well sought skill by companies.

This course is updated frequently to include the features of latest releases.

When Google started running containers a decade ago, nobody could reach this kind of infrastructure agility and efficiency. Using this knowledge, Google released Kubernetes as an free and open source project. Nowadays Kubernetes is used by small companies and big enterprises who want to gain the efficiency and velocity Google has.

You can containerize applications using Docker. You can then run those containers on your servers, but there's no way you can manage those efficiently without extra management software. Kubernetes is an orchestrator for your containers that will create, schedule and manage your containers on a cluster of servers. Kubernetes can run on-premise or in the cloud, on a single machine or on thousands of machines.

I will show you how to build apps in containers using docker and how to deploy those on a Kubernetes cluster. I will explain you how to setup your cluster on your desktop, or on the cloud using AWS. I use a real world example app (Wordpress with MySQL - blogging software) to show you the real power of Kubernetes: scheduling stateless and stateful applications.

The introduction lectures that show you the Kubernetes desktop installation are free to preview, so you can already have a go at it before buying the course.

This course also has Closed Captions (English subtitles)

Updates (11/2019):

* Added Admission Controllers lectures

* Continuous Development with Skaffold

* etcd and the raft algorithm

Updates (01/2020):

* AWS EKS (managed Kubernetes) lecture and demo

Updates (01/2021):

* MutatingWebhook, ValidatingWebhook and demo

Enroll now

What's inside

Learning objectives

  • Install and configure kubernetes (on your laptop/desktop or production grade cluster on aws)
  • Use docker client (with kubernetes), kubeadm, kops, or minikube to setup your cluster
  • Be able to run stateless and stateful applications on kubernetes
  • Use healthchecks, secrets, configmaps, placement strategies using node/pod affinity / anti-affinity
  • Use statefulsets to deploy a cassandra cluster on kubernetes
  • Add users, set quotas/limits, do node maintenance, setup monitoring
  • Use volumes to provide persistence to your containers
  • Be able to scale your apps using metrics
  • Package applications with helm and write your own helm charts for your applications
  • Automatically build and deploy your own helm charts using jenkins
  • Install and use kubeless to run functions (serverless) on kubernetes
  • Install and use istio to deploy a service mesh on kubernetes
  • Continuously develop using skaffold
  • Show more
  • Show less

Syllabus

Course Introduction
Support and Course Materials
Procedure Document
Introduction to Kubernetes
Read more

What is kubernetes, why would you use it, what benefits does it give you

On Kubernetes you run containers. In this lecture you'll learn what containers are all about.

Kubernetes can run almost anywhere. You can run it on-premise or in the cloud.

This lectures explains what minikube is, a piece of software that can help you run kubernetes locally.

This demo shows you how to run Kubernetes using Minikube.

As an alternative to Minikube, you can install kubernetes using the official docker client for Mac / Windows

The difference between Minikube vs Docker client vs Kops vs Kubeadm: which one to use when

An introduction to Kops - Kubernetes Operations. Software to provision and manage Kubernetes on AWS.

Kops only works on Mac / Linux, so you'll need to setup a vagrant box to run kops. If you are running already MacOS or Linux, and you don't want to be working in a VM, you can skip this step.

You first need to open an AWS account, add an IAM user for kops and setup DNS using route53

The DNS settings need to be correct for your kubernetes cluster to work. Follow this lecture if you have issues with your DNS settings.

Once the AWS setup is complete, you can use kops to setup the Kubernetes cluster on AWS

Kubernetes only runs containers. In this lecture you learn how to build your application in a container.

In this demo I show you how to build a NodeJS example app in a container.

Once you have built a container, you need to put it on a registry, so Kubernetes can download it. You have public and private registries. Putting a container on a public registry is free.

In this demo I show you how to push the container with our app to Docker Hub

THis lecture explains how to run a first application on Kubernetes

Once the first app is available on Docker Hub, I show you how to run this app on our Kubernetes cluster

In this demo I show you some useful commands you can use to manage your containers on Kubernetes

If you're running your cluster on AWS, you can create a LoadBalancer (AWS ELB) for your application

In this demo I show you how to add an ELB (Elastic Load Balancer) to the example app

In this lecture I recap the most important concepts from the first section

Now that we have covered quite some ground, let's do a practice test

Kubernetes Basics

In this lecture I explain the Kubernetes node architecture

You can use the replication controller to spin up multiple instances of your application

This demo shows you how to spin up multiple instances of your application

Deployment objects allow a better abstraction of an application running on Kubernetes. You can update your application version easily and roll-back if something goes wrong.

In this demo I show you how our example application can be a deployment.

Exposing our application for external traffic can be done using services

In this demo I show you how to expose our example app

Labels can be used to tag objects

Labels together with NodeSelectors can be used to run pods on a specific node

Healthchecks can be used to periodically check whether our app in the pod is still working

In this demo I show you how to use healthchecks

Readiness Probe
Demo: Liveness and Readiness probe
Pod State
Pod Lifecycle
Demo: Pod Lifecycle

Application credentials (for instance to access a database) can be stored in secrets.

Credentials can be mounted as a volume in a pod. This demo shows you how to do that.

First attempt to run a wordpress on Kubernetes. In a later version I'll show you a better way of running Wordpress on Kubernetes

Kubernetes also has a Web UI, a dashboard that makes it easy to use kubernetes

Demo explaining how to add the web UI in kops

In this brief demo I give an overview how to use the dashboard

Practice test II
Advanced Topics

You can do service discovery using DNS.

This is a demo showing you how service discovery works

Containers are immutable. You can still use ConfigMaps for dynamic configuration data that needs to be present on the container.

In this demo I show you how to use ConfigMap to create a custom configuration file for a standard nginx container

Ingress controller allows you to have a reverse proxy / load balancer within your Kubernetes cluster and without using an external load balancer.

In this demo I show you how to use the built-in kubernetes ingress controller

External DNS
Demo: External DNS

If you want to run stateful applications on Kubernetes, you need volumes.

In this demo I show you how to use volumes in Kubernetes

Kubernetes can auto-provision volumes for you, no need to manually create an EBS volume on AWS

Now we know enough to use volumes to launch a fully working wordpress

Pod Presets
Demo: Pod Presets

Pet Sets enables you to run distributed applications and databases on Kubernetes, like ElasticSearch, MySQL Cluster, or Cassandra

In this demo I show you how to use StatefulSets with Cassandra

Daemon Sets will make sure a pod is running on every node

Resource Usage Monitoring using influxdb and grafana will give you application metrics

Starting from 1.11 Heapster will be deprecated. The replacement is the Metrics Server. This lecture explains the difference with heapster and how to install the Metrics Service.

This demo explains how to setup Resource Usage Monitoring using heapster + influxdb + grafana

Autoscaling can scale pods horizontally based on predefined targets

In this demo I show you how horizontal pod autoscaling (hpa) works

This lectures explains what Node and Interpod Affinity / Anti-affinity is and what the difference is between node affinity and the NodeSelector

This is a demo showing how Node Affinity works

Interpod Affinity and Anti-affinity
Demo: Interpod Affinity
Demo: Interpod Anti-Affinity

This lecture explains taints and tolerations, which is the opposite of node affinity

Demo: Taints and Tolerations

This explains what Custom Resource Definitions are

Operators
Demo: postgresql-operator
Quiz
Kubernetes Administration

This lectures gives an architecture overview of the master services

As an administrator, you can implement resource quotas to make sure one team or one person doesn't take up all resources

Namespaces can logically separate a Kubernetes cluster

In this demo I explain how to implement namespace quotas

Users can be added to your Kubernetes cluster. This lecture explains authentication and authorization

In this demo I show you how to add users using certificates

This lecture explains authorization in Kubernetes using RBAC

Demo: RBAC

Every pod needs a unique IP. Not all infrastructure can easily handle this. CNI and overlay networks can help.

Sometimes you want to add / remove nodes. This is how it is done

This demo shows how to drain a Kubernetes node

Once you put a Kubernetes cluster in production, you are going to want to have full high availability. This lecture explains you how to achieve that.

This demo shows how to enable HA on your AWS Kubernetes cluster using kops

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores Kubernetes, which is a core skill in DevOps that is highly sought after by companies
Taught by Edward Viaene, who are recognized for their work in Kubernetes
Examines Kubernetes, which is highly relevant to the tech industry and in particular DevOps
Develops skills in deploying and managing applications, which are core skills for DevOps
Covers key Kubernetes concepts such as pods, containers, and deployments
Provides hands-on practice through demos and exercises

Save this course

Save Learn DevOps: The Complete Kubernetes Course to your list so you can find it easily later:
Save

Reviews summary

Devops with kubernetes - comprehensive intro

Learners say this course provides a great introduction to cloud infrastructure with Kubernetes. Reviews indicate that the demos need to be updated as Helm 3 is now available and there is no tiller deployment anymore. However, one student commented that there is a topic not covered on how to replace S3 storage with an equivalent product in Minikube.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn DevOps: The Complete Kubernetes Course with these activities:
Review Docker basics
Kubernetes is built on top of Docker, so it's important to have a solid understanding of Docker before you start learning Kubernetes.
Browse courses on Docker
Show steps
  • Review the Docker documentation or take an online course on Docker.
  • Practice using Docker to create and manage containers.
Follow a Kubernetes tutorial
There are many great tutorials available online that can help you get started with Kubernetes.
Browse courses on Kubernetes
Show steps
  • Find a tutorial that is appropriate for your skill level and interests.
  • Follow the tutorial step-by-step, and make sure to experiment with different options.
  • Ask questions and seek help from the community if you get stuck.
Build a simple Kubernetes application
The best way to learn Kubernetes is by doing. Build a simple application that uses Kubernetes to deploy and manage your containers.
Browse courses on Kubernetes
Show steps
  • Choose a simple application that you can build with Docker and Kubernetes.
  • Follow the Kubernetes documentation to create a Kubernetes cluster and deploy your application.
  • Monitor your application and make sure it is running as expected.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Kubernetes practice problems
Solving practice problems is a great way to test your understanding of Kubernetes and identify areas where you need more practice.
Browse courses on Kubernetes
Show steps
  • Find a website or book that offers Kubernetes practice problems.
  • Solve the practice problems and check your answers against the provided solutions.
  • Review your answers and identify any areas where you need more practice.
Participate in a Kubernetes hackathon
Hackathons are a great way to learn Kubernetes and test your skills against other developers.
Browse courses on Kubernetes
Show steps
  • Find a Kubernetes hackathon that is appropriate for your skill level and interests.
  • Form a team and work together to build a Kubernetes application.
  • Present your application to the judges and get feedback.
Contribute to a Kubernetes open source project
Contributing to an open source project is a great way to learn Kubernetes and give back to the community.
Browse courses on Kubernetes
Show steps
  • Find a Kubernetes open source project that you are interested in.
  • Review the project's documentation and make sure you understand the codebase.
  • Make a contribution to the project, such as fixing a bug or adding a new feature.
Mentor other students in Kubernetes
Mentoring other students is a great way to reinforce your own understanding of Kubernetes and help others learn.
Browse courses on Kubernetes
Show steps
  • Find a student who is interested in learning Kubernetes.
  • Work with the student to develop a learning plan.
  • Answer the student's questions and provide guidance as needed.

Career center

Learners who complete Learn DevOps: The Complete Kubernetes Course will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
As a DevOps Engineer, you will help define and implement strategies to enhance software delivery and infrastructure management. By completing the "Learn DevOps: The Complete Kubernetes Course," you will be able to gain the skills and knowledge needed to succeed in this role. Understanding the fundamentals of Kubernetes, containerization with Docker, and continuous integration/continuous delivery (CI/CD) processes will be essential in the fast-paced and collaborative environment of a DevOps team.
Cloud Architect
Cloud Architects design, develop, and implement cloud computing solutions. They work with clients to understand their business needs and develop cloud-based solutions that meet those needs. The "Learn DevOps: The Complete Kubernetes Course" will provide you with the essential knowledge and skills needed to succeed in this role. The course will teach you how to design, deploy, and manage cloud-based applications and services using Kubernetes, Docker, and other DevOps tools and technologies.
Site Reliability Engineer (SRE)
Site Reliability Engineers (SREs) are responsible for the reliability, performance, and operational efficiency of online services. They work to ensure that services are available, responsive, and scalable to meet user demand. The "Learn DevOps: The Complete Kubernetes Course" will provide you with the skills and knowledge needed to succeed in this role. You will learn how to use Kubernetes, Docker, and other DevOps tools and technologies to automate and manage the deployment and operation of distributed systems.
Software Developer
Software Developers design, develop, and test software applications. They work with users to understand their needs and develop software that meets those needs. The "Learn DevOps: The Complete Kubernetes Course" will help you develop the skills and knowledge needed to succeed as a software developer. The course will teach you how to use Kubernetes, Docker, and other DevOps tools to develop and deploy software applications.
Systems Administrator
Systems Administrators are responsible for the maintenance and operation of computer systems. They work to ensure that systems are running smoothly and efficiently. The "Learn DevOps: The Complete Kubernetes Course" will provide you with the skills and knowledge needed to succeed in this role. The course will teach you how to manage and maintain Kubernetes clusters, as well as how to use Docker and other DevOps tools to automate and manage the deployment and operation of software systems.
IT Manager
IT Managers are responsible for the planning, implementation, and management of IT systems and services. They work with senior management to develop and implement IT strategies, and they manage IT staff and resources to ensure that IT systems meet the needs of the organization. The "Learn DevOps: The Complete Kubernetes Course" may be useful for IT Managers who want to gain a better understanding of Kubernetes and Docker, and how these technologies can be used to improve the efficiency and effectiveness of IT systems and services.
Database Administrator
Database Administrators are responsible for the design, implementation, and management of database systems. They work to ensure that databases are available, reliable, and secure. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Database Administrators who want to learn how to use Kubernetes and Docker to manage and deploy database systems.
Network Administrator
Network Administrators are responsible for the design, implementation, and management of computer networks. They work to ensure that networks are reliable, secure, and scalable to meet the needs of the organization. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Network Administrators who want to learn how to use Kubernetes and Docker to manage and deploy network services.
Security Engineer
Security Engineers are responsible for the design, implementation, and management of security systems. They work to protect organizations from cyber threats and data breaches. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Security Engineers who want to learn how to use Kubernetes and Docker to manage and deploy security systems.
Data Analyst
Data Analysts collect, analyze, and interpret data to provide insights that can help organizations make better decisions. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Data Analysts who want to learn how to use Kubernetes and Docker to manage and deploy data analysis pipelines.
Project Manager
Project Managers are responsible for the planning, execution, and delivery of projects. They work with stakeholders to define project goals, develop project plans, and manage project resources to ensure that projects are completed on time, within budget, and to the required quality standards. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Project Managers who want to learn how to use Kubernetes and Docker to manage and deploy project deliverables.
Business Analyst
Business Analysts work with stakeholders to understand their business needs and develop solutions that meet those needs. They work with IT systems and services to implement those solutions and ensure that they meet the needs of the organization. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Business Analysts who want to learn how to use Kubernetes and Docker to manage and deploy business applications.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, white papers, and training materials. They work with engineers and other technical experts to understand complex technical concepts and translate them into clear and concise documentation. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Technical Writers who want to learn how to use Kubernetes and Docker to create and maintain technical documentation for DevOps tools and technologies.
Quality Assurance (QA) Tester
QA Testers test software applications to identify and fix defects. They work with developers and other members of the software development team to ensure that software applications meet the required quality standards. The "Learn DevOps: The Complete Kubernetes Course" may be useful for QA Testers who want to learn how to use Kubernetes and Docker to manage and deploy software applications for testing.
Technical Support Specialist
Technical Support Specialists provide technical support to users of software applications and services. They work with users to troubleshoot problems and resolve issues. The "Learn DevOps: The Complete Kubernetes Course" may be useful for Technical Support Specialists who want to learn how to use Kubernetes and Docker to manage and deploy software applications and services for users.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn DevOps: The Complete Kubernetes Course.
Comprehensive guide to Kubernetes, covering advanced topics such as cluster architecture, networking, security, and troubleshooting. It's an excellent resource for experienced Kubernetes users looking to deepen their knowledge.
Provides advanced guidance on designing and operating Kubernetes clusters in production environments. It covers topics such as cluster architecture, security, monitoring, and troubleshooting, offering valuable insights for those managingKubernetes clusters at scale.
Offers hands-on, practical guidance for building and deploying containerized applications on Kubernetes. It features real-world examples and best practices, making it ideal for engineers implementing Kubernetes in production.
While not specific to Kubernetes, this book offers a classic guide to DevOps principles and practices. It's a valuable resource for those looking to understand the broader context of DevOps and how it relates to Kubernetes.
Offers a deep dive into Kubernetes security best practices. It covers topics such as pod security, network security, and cluster security, providing valuable guidance for those responsible for securing Kubernetes environments.
Provides a broad overview of cloud native infrastructure, including Kubernetes. It covers topics such as containerization, orchestration, networking, and storage, offering a comprehensive perspective on the landscape of modern cloud computing.
Delves into the world of Kubernetes Operators, which automate the management of complex applications on Kubernetes. It's an essential resource for those looking to build and manage production-grade Kubernetes applications.
Focuses on continuous delivery practices in the context of Docker and Kubernetes. It covers topics such as CI/CD pipelines, automated testing, and deployment strategies, providing a complementary perspective to the course's emphasis on Kubernetes management.
Provides a concise and pragmatic guide to Kubernetes best practices. It covers topics such as cluster management, application deployment, security, and monitoring, offering valuable insights for Kubernetes practitioners.
Offers a comprehensive overview of serverless architecture on AWS. While it's not specific to Kubernetes, it provides valuable insights into serverless computing, which can complement the course's focus on container orchestration.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Learn DevOps: The Complete Kubernetes Course.
Deploying ASP.NET Core 3 Microservices Using Kubernetes...
Most relevant
Supporting SQL Server High Availability with Kubernetes
Most relevant
AKS Basics
Most relevant
Introduction to Kubernetes
Most relevant
Deploying ASP.NET Core 6 Using Kubernetes
Most relevant
Docker and Kubernetes: The Complete Guide
Most relevant
Google Kubernetes Engine (GKE): Beginner to Pro
Most relevant
Getting Started with OpenShift 4
Most relevant
Azure Container Instances: Getting Started
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser