The course is part of these learning paths
Course Introduction and Overview
Production and Course Conclusion
This course provides an introduction to how to use the Kubernetes service to deploy and manage containers.
Be able to recognize and explain the Kubernetes service
Be able to explain and implement a Kubernetes container
Be able to orchestrate and manage Kubernetes containers
This course requires a basic understanding of cloud computing. We recommend completing the Google Cloud Fundamentals course before completing this course.
Hello everybody. I'm Adam Hawkins and I'm your instructor for this introduction to Kubernetes course for Cloud Academy.
If you've been following the industry in the past few years, then odds are you've seen, or hopefully even used containers. Container technologies like Docker have truly changed the game by standardizing application development and production infrastructure. I experienced this first hand. Docker changed the game for me and my team by allowing us to build, ship, and run our applications in any language we wanted. This worked out fantastically for us until it was time to go to production. There were all sorts of great tooling and development, but really nothing available to run our applications in production. We decided to roll our own infrastructure implement tooling. Naturally this took us months. And those were really hard and difficult months. Half a year later we had something that worked. It wasn't fancy, but it got the job done. This was almost three years ago and let me tell you things have changed a lot since then. You can accomplish what took us months in hours. That's right, not months, not weeks or days, I said hours. That's how much the tooling has improved. Times really have changed. These days we have mature tools to work with containers all the way from development up until production. I could have definitely used this stuff a few years ago. Now we have tools like Kubernetes, DCOS, and Docker Swarm. These orchestration tool provide engineers with a toolbox to automate, deploying, scaling, and operating containerized applications in production. This course is all about my personal favorite, Kubernetes.
This course will teach you to deploy containerized applications using Kubernetes. We'll cover the features required by most common applications. I'll also equip you for the real world by covering the Kubernetes ecosystem and preparing you for production. Deploying applications is such a large topic, it requires a mix of different skills. Success requires a mix of depth and breadth. This course focuses on breadth. I'll cover the features required to deploy applications and call out supplemental materials for added depth.
Let's identify our concrete learning objectives. One: deploy single and multiple container Docker applications. Two: configure service discovery. Three: expose applications to the public internet. Four: manage deployments with rollouts. Five: use probes to monitor running containers. Six: bootstrap applications with init containers. Seven: manage secrets. Eight: configure persistent storage for a database container. And finally, and most importantly, nine: prepare for Kubernetes in production.
This course is for anyone deploying containerized applications. It is especially useful if you have an existing system and are evaluating other deployment options. Container orchestration skills are relevant for Site Reliability Engineering positions, Operational Engineers, and other DevOps-y type roles. Or really anyone just looking to grow their full stack portfolio.
These roles overlap in multiple ways and require a nice breadth of experience. However, this course focuses only on a small subsection. I expect you to have experience working with Docker. I recommend my introduction to Docker course if you need to kickstart. You also should be comfortable working with the CLI. Hopefully you have worked with containerized applications in the real world. This is not a hard requirement, but it will really help you apply Kubernetes features to common application scenarios. The course does not cover configuring and running Kubernetes. That could be an entire course all by itself. Instead we'll rely on prepackaged solutions.
You should skip this course if you're purely interested in provisioning, scaling, and maintenance, and other operational concerns. This course targets Kubernetes end users and not administrators. That being said, we will touch on these topics a little bit in the last lesson. But they are not our primary focus.
There are a few more things I need to share with you before we start. This course targets Kubernetes 1.5.1. Please keep this in mind if you have existing Kubernetes experience or are coming to this course in the future. You never know what changes the future will bring.
We'll use Minikube throughout the course. The hands-on lessons require access to a running Kubernetes cluster. Minikube is the simplest way to make this happen. Please install Minikube before moving on to the hands-on lessons. Also, I'm using a mix of Ubuntu and macOS for the hands-on lessons. It shouldn't make a difference for you because we're using the same commands at the end of the day.
Keep in mind that this is a video, so feel free to pause, rewind, and replay as many times as you need. I promise you I'm not going anywhere. And I know you'll have questions, so don't hesitate to ask. You can reach me via email, twitter, the Kubernetes slack channel, or the Cloud Academy Community Forum.
So, all set? Let's begin with an overview of what Kubernetes is and what it can do.
About the Author
Adam is backend/service engineer turned deployment and infrastructure engineer. His passion is building rock solid services and equally powerful deployment pipelines. He has been working with Docker for years and leads the SRE team at Saltside. Outside of work he's a traveller, beach bum, and trance addict.