In the past week, I’ve had two separate people reach out to me about how to get started with learning Kubernetes. I thought I’d put my thoughts together in a blog post here, so everybody can benefit from this.
Starter resources for Kubernetes
To start learning Kubernetes, I highly recommend the following resources:
- Introduction to Kubernetes course on edX. This is a hands-on course explaining Kubernetes from the ground up, leveraging Minikube on your own laptop. It’s a great way to get started.
- Kubernetes up and running. Great book by Brendan Burns, Joe Beda, and Kelsey Hightower. It’s a little bit more theoretical than the edX course, but still contains a lot of examples.
Those are the two resources I would recommend to start with. In addition, there’s a ton of other content out there as well. For instance, Peter Jausovec has a start Kubernetes course where he offers a book, videos and practical exercises.
Running Kubernetes does require some knowledge of containers in general. You can get by without building your own custom containers initially, but you’ll get the best advantage if you know Docker and containers. If you want to learn about the basics, I did a presentation last week on this exact topic. To get some more hands-on examples with Docker itself, I encourage you to check out this guided documentation by Microsoft.
More advanced resources for learning Kubernetes
Once you’ve mastered the basics of Kubernetes, there’s more to learn about Kubernetes itself and the ecosystem. Some of the major things to learn about are:
- Helm. This is a tool used to package and deploy applications to Kubernetes. It’s very commonly used in Kubernetes environments, so make sure to play around with helm as well.
- Kubernetes security. Security in the container world is very important. There are a number of good resources about this. I recommend you start with this free eBook offered by Aqua security, and afterwards maybe dive into this book by Packt on Kubernetes Security in more depth.
- DevOps / CI/CD. The best way to deploy applications to Kubernetes is by leveraging an automated system. Multiple tools are available, e.g. Azure DevOps, GitHub Actions, GitLab, Jenkins… The tools are less important than the process. There is a good eBook and documentation from Microsoft around the process. You can find multiple other resources about this, for instance on my blog or this video by Geert Baeke on using GitHub actions for CD.
For these advanced resources, I recommend you to do some research and try to learn as much as possible by building examples.
Learning Kubernetes on Azure
Only after you’ve mastered the basics of Kubernetes should you think about deploying Kubernetes on Azure. I like to say that if you want to learn Kubernetes, focus on Kubernetes first and your cloud provider second. The cloud provider is an implementation detail, start with learning Kubernetes itself.
The resource I recommend to start learning Kubernetes on Azure is the book I wrote on Hands-on Kubernetes on Azure. Microsoft is making this available as a free download. If you want to get a print copy, you can get a copy on Amazon.
In addition to the book, there’s two resources I highly recommend:
- Guided learning path for Kubernetes on Azure on Microsoft learn.
- Azure Kubernetes Workshop, also on Microsoft learn. This is a great hands-on workshop for deploying applications on AKS.
I hope everybody will enjoy time off during the holidays. Since some people had asked me for Kubernetes learning resources, I wanted to share my top resources.