image
Conclusion
Start course
Difficulty
Beginner
Duration
2h 30m
Students
25230
Ratings
4.4/5
starstarstarstarstar-half
Description

Kubernetes is a production-grade container orchestration system that helps you maximize the benefits of using containers. Kubernetes provides you with a toolbox to automate deploying, scaling, and operating containerized applications in production. This course will teach you all about Kubernetes including what it is and how to use it.

This course is paired with an Introduction to Kubernetes Playground lab that you can use to follow along with the course using your own Kubernetes cluster. The lab creates a Kubernetes cluster for you to use as we perform hands-on demos in the course. All of the commands that are used in the course are included in the lab to make it easy to follow along.

Learning Objectives 

  • Describe Kubernetes and what it is used for
  • Deploy single and multiple container applications on Kubernetes
  • Use Kubernetes services to structure N-tier applications 
  • Manage application deployments with rollouts in Kubernetes
  • Ensure container preconditions are met and keep containers healthy
  • Learn how to manage configuration, sensitive, and persistent data in Kubernetes
  • Discuss popular tools and topics surrounding Kubernetes in the ecosystem

Intended Audience

This course is intended for:

  • Anyone deploying containerized applications
  • Site Reliability Engineers (SREs)
  • DevOps Engineers
  • Operations Engineers
  • Full Stack Developers

Prerequisites

You should be familiar with:

  • Working with Docker and be comfortable using it at the command line

Source Code

The source files used in this course are available here:

Updates

August 27th, 2019 - Complete update of this course using the latest Kubernetes version and topics

May 7th, 2021 - Complete update of this course using the latest Kubernetes version and topics

 

Transcript

This is the last lesson in this course. I wanna congratulate you for completing this course in Kubernetes. In this lesson, I'm gonna be summarizing the high-level learning outcomes you've achieved and gonna be providing you with the next step for your Kubernetes journey. We've covered a lot of ground together. We started by explaining what Kubernetes is in our overview lesson. We followed that up with a summary of the architecture of Kubernetes and some of your options for deploying Kubernetes itself. 

Next, we discussed the options available to you for interacting with Kubernetes. No doubt you've gotten to know kubectl much better than since when we first introduced it. Then we moved into the technical basics and built an application from a single pod all the way up to a self-healing, auto-scaling multi container, multi-tier application. Along the way, we've learned the following, Kubernetes terminology, how any number of deployments with service discovery work. Triggering, pausing, resuming, restarting, and undoing deployment roll-outs. Monitoring container liveness and readiness with probes. Preparing pods within init containers. How to configure persistent data storage which involves persistent volumes, persistent volume claims in volumes. And lastly, how to separate configuration and sensitive data from pod specs with containers using ConfigMaps and Secrets.

These learning outcomes should give you the confidence to start deploying applications with Kubernetes. The previous lesson took a step back and allowed you to see some of the exciting tools available to you in the vibrant Kubernetes ecosystem. So now that you've built a solid foundation in Kubernetes, where should you go next? Well, I've got a few recommendations. Cloud Academy has a lot more content on Kubernetes. In addition to the Kubernetes learning path, I'd encourage you to take a look at the certified Kubernetes administrator learning path or the certified Kubernetes application developer learning path. Both get into more details and describe more about topics that we've already covered but just didn't have the time to fully explore. You can decide which one is best for you based on your current role or the kind of role you want to pursue, whether that's more on the administrative side or more on the developer side. Both learning paths include tips on how to become a kubectl ninja and do things like generating manifests and explaining field values amongst other tips.

I'd also recommend that you convert your own application to run on Kubernetes. We did a similar exercise in this course, but I recommend taking an application that you know well and modeling it out to be a Kubernetes application. This will reinforce everything we have learned, and it can help you find different solutions to already existing challenges. You can also try to package your solution as a Helm chart if you want something you can share with others.

My last recommendation is to participate in the Kubernetes community. There are many ways to get involved. And on GitHub, you can report issues, help others solve their own issues, contribute updates and improvements to documentation, or submit pull requests for new features. If there's a specific area of Kubernetes you are interested in, you can consider joining a special interest group, which is how Kubernetes organizes the community. There are also conferences, Slack channels, and Google groups to follow what's happening so you can connect with other members of the community.

KubeCon is the flagship conference and is hosted virtually every year, and when available, in person. And with that, our journey through Kubernetes comes to an end. Please share your feedback so I can continue to improve and deliver just what you're looking for. It may be the end of this course, but it's only the beginning of a long and productive relationship with Kubernetes. Thank you for taking this course. And until next time, I'm Jonathan Lewey with Cloud Academy.

About the Author
Students
28261
Courses
8
Learning Paths
2

Jonathan Lewey is a DevOps Content Creator at Cloud Academy. With experience in the Networking and Operations of the traditional Information Technology industry, he has also lead the creation of applications for corporate integrations, and served as a Cloud Engineer supporting developer teams. Jonathan has a number of specialities including: a Cisco Certified Network Associate (R&S / Sec), an AWS Developer Associate, an AWS Solutions Architect, and is certified in Project Management.