Kubernetes - where to start?
You heard about Kubernetes but are not sure what it is? You have dabbled in it but you are still not sure how it works? You tried to find out about it yourself, but found the material overwhelming?
If you answered to at least one of the above questions affirmatively, this article is for you. If there is something else troubling you with Kubernetes that I didn't take into consideration, add a comment below, or stick until the end, maybe you will be able to find something that will be useful and will invoke further research.
Let's start from the beginning - what Kubernetes is?
If you have come across the Kubernetes official documentation (which I find quite useful, to be honest), they define Kubernetes like this:
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
I find this explanation good and quite encompassing. Especially if you have experience with Kubernetes and have worked with it. But, if you haven't had time to check it out, or you are starting to get into the Kubernetes overwhelming world, this definition doesn't tell you a lot.
Now, I will not go into details and dissect this explanation from the documentation, rather, I will provide you with different sources where you can find the answers yourself.
Different Perspectives
As it happens with the world around us, we see everything from a different perspective. The same is true for Kubernetes - being it a small world on its own, we may approach it from different perspectives.
Those perspectives may vary from a person to person, so I've decided to list the most common ones. We will then use these different perspectives to list some sources where you can find the answers you are looking for.
- A Software Developer who is interested in developing and running applications on Kubernetes, but they don't know where to start.
- An Operations Engineer (or DevOps Engineer as some might say) interested in setting up the Kubernetes cluster, but are not sure what option to choose, what structure it will have, and so on.
- A Product Owner who heard about Kubernetes, wants to know more about it, and reasons to (or not to) migrate to Kubernetes.
Books
The list of books related to Kubernetes is vast, and for sure can be tough to determine where to start. In the following paragraphs, I will recommend books to help you get started with the really interesting world of Kubernetes.
First up is the book I read when I first started with the subject. It was, and, in my opinion, still is, one of the best I've read on Kubernetes so far. This book is more for people who would like some hands-on exercises and wish to immerse themselves in the ecosystem by typing commands and by doing some exercises.
Who should read it? Everyone, no matter the perspective should at least read Part 1 - Overview, and Part 2 - Core Concepts. If you are DevOps engineer, however, it will be helpful to read the whole book.
The above book is excellent as well, and one of the authors is Kelsey Hightower - the one who authored the popular tutorial Kubernetes the Hard way. It dives deep into the deployment of Kubernetes, its components, and how to get the Kubernetes cluster up and running.
Who should read it? Both the book and his tutorial are, however, more suitable for DevOps and Ops engineers. Others can find something useful in them as well, but the material is leaning more toward the infrastructure side of the coin.
On the other hand, if you are interested in developing applications for Kubernetes, this book would be the one you should go to. It is a developer-focused approach to Kubernetes and its components, covering everything from the initial setup of the development environment, through various Kubernetes resource lifecycles, to the troubleshooting steps.
Who should read it? The main target group for this book are software developers who want to bring their workloads onto the Kubernetes environment.
Last, but not least, is another one leaning more toward the Dev side of the coin as well. If you are interested in developing Cloud Native applications - this book is for you. It explains foundational, behavioral, structural, configuration, and advanced patterns, and how to apply them in the development of Cloud Native applications.
Who should read it? This book targets software developers who want to develop more Cloud Native applications and want to run their workloads on the Kubernetes environment.
Courses and Videos
If books are not really your thing, and you feel confident when learning from videos, don't worry - there is a lot of them out there as well.
First up is the great video from Nana Janashia (Tech World with Nana) and it explains everything you need to know to get started. It is 3 and a half hours long and it covers all the basics of Kubernetes components and resources.
Who should watch it? This video is more oriented towards the DevOps and Ops side of the coin, however, developers can get a good grasp from it as well.
If you don't have, or don't want to, spend too much time learning about Kubernetes, the above video, again from Nana, will explain all you need to know about Kubernetes in an hour or so.
Who should watch it? This video is good if you are a total beginner, and just want to find out the basics, without going too deep into the topic.
Well rounded course going through the Kubernetes environment, and all the concepts you need to know in order to work with Kubernetes.
Who is this course for? This course is suitable for both developers and DevOps and Ops people. It is leaning more toward the developer side of the coin, but it is a good course to follow, especially if you later want to get certification in the process.
Another course from the same author - Mumshad Mannambeth. This course goes a bit more deep into the Kubernetes and the whole environment, from the core concepts, to the ways of deploying Kubernetes cluster.
Who is this course for? This course is a great one if you are more leaning toward the Ops and DevOps side of things. Especially if you are interested in getting certified as a Kubernetes administrator, this course is definitely for you. I completed this course before passing the CKA exam, and cannot recommend it enough.
And if you want to learn more about how I prepared for the CKA, have a look at the article below. There I write about how I prepared for the exam, and what to have in mind if you want to get certified in Kubernetes as well.
Other Useful Material
With this last section, I want to share other stuff and material I found useful when started learning about the Kubernetes ecosystem.
The one above is one of my favorites. Even though it's more oriented toward Azure Kubernetes service, it is a great first step, for all of you, no matter the perspective! If you just want to know the basics, days one to five will be enough. If you want to know more, go ahead and check out the whole learning path.
Who is this material for? It is well-suited for beginners, and it also provides a way to go deep into the topics you are or might be interested in.
Have in mind, however, that at some point you will get a bit more info about AKS - a managed Kubernetes service from Azure. And the service itself is good, however, it is maybe not suitable for your use case.
Even though it may be somewhat counterintuitive I'm mentioning it at the end, I find Kubernetes official documentation high on my material recommendation. It has everything you need to know about Kubernetes, and it is a great point of reference for everything relating to Kubernetes. Or at least it can be if you know where to look.
Who should read it? There is no way for you to go through the complete documentation and read it. However, if you are more interested in the specifics of Kubernetes, and want to know more about it, this is a great place to look.
Last on the list is the official blog from Kubernetes, where you can find a plethora of interesting articles related to Kubernetes. There the Kubernetes maintainers and developers explain the decisions they made in the Kubernetes design and implementation, the reasons why they did it, but also information about releases, change logs, etc.
Who should read it? If you are interested in how some decisions were made, e.g. deprecation of docker shim on Kubernetes, this is the place to look for explanations.
Summary
Kubernetes ecosystem sure can be overwhelming, and the material explaining it, as well. The most important thing is to keep an open mind, start small, and build on top of that. Everything else will come with time. There is no need to hurry and worry that you don't know anything. Nobody does at the beginning.
Let me know in the comments below what you think about the article. Would you add something to the list? Do you have some feedback about the material I recommended?
And subscribe to this newsletter if you want to get more Kubernetes-related articles in your mailbox.