Overview of Kuberentes
Deploying Containerized Applications to Kubernetes
The Kubernetes Ecosystem
The course is part of these learning paths
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.
The source files used in this course are available in the course's GitHub repository.
- 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
This course is intended for:
- Anyone deploying containerized applications
- Site Reliability Engineers (SREs)
- DevOps Engineers
- Operations Engineers
- Full Stack Developers
You should be familiar with:
- Working with Docker and be comfortable using it at the command line
August 27th, 2019 - Complete update of this course using the latest Kubernetes version and topics
This is the last lesson in the course. I congratulate you for completing this course on Kubernetes. In this lesson I'm summarizing the high-level learning outcomes you have achieved and providing you with next steps in your Kubernetes journey.
We have 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.
Next we discussed the options available to you for interacting with Kubernetes. No doubt you have gotten know kubectl much better since 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, autoscaling, multi-container multi-tier applications. Along the way we've learned:
the Kubernetes terminology;
How N-tier deployments with service discovery work;
triggering, pausing, resuming, restarting and undoing deployment rollouts;
monitoring container liveness and readiness with probes;
preparing pods with init containers
persistent data storage which involved persistent volumes, persistent volume claims, and volumes; and lastly
How to separate configuration and sensitive data from pod specs and container images 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.
Now that you have built a solid foundation in Kubernetes, where should you go next? I have a few recommendations.
Cloud Academy has a lot more content on Kubernetes. In addition to the Introduction to Kuberentes Learning path, I’d encourage you to take a look at the certified kuberenetes administrator learning path or the certified kubernetes application developer learning path. Both get into more details and describe more about topics we 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 admin side or 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 for Kubernetes. This will reinforce everything we have learned and 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. On Github you can report issues, help others solve their issues, contribute updates and improvements to the documentation, or submit pull request for new features. If there is 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 and connect with other members of the community. Kubecon is the flagship conference and if you don’t get a chance to attend in person you can find the presentation videos online.
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 are looking for. It may be the end of this course but it is only the beginning of a long and productive relationship with Kubernetes.
Thanks for taking my course!
Until next time, I’m Logan Rakai with Cloud Academy.
About the Author
Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), Linux Foundation Certified System Administrator (LFCS), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.