top of page

Kubernetes Roadmap - A Complete Step-by-Step Learning Path for Admins and Developers


Kubernetes Roadmap

This is the written version of my youtube video ✍️ 🙂



Why Learning Kubernetes is a good idea 🔥


Kubernetes has become the "operating system" of the cloud

Kubernetes (K8s) is being adopted at companies at a high pace and anyone with knowledge in that has a career advantage.

Kubernetes skills in high demand
Kubernetes skills are in high demand

This inevitably also reflects on the job market, where Kubernetes job searches grew by 2125% in 4 years. And this high demand for engineers, who have a deep knowledge of Kubernetes, results in great career opportunities and high salaries.


Most popular Kubernetes related tech-roles include:

  • DevOps Engineer

  • Software Engineer

  • Cloud Engineer.

You can even become a full-time Kubernetes engineer as it has almost become its own role.


Kubernetes is powerful, but complex

Kubernetes is a powerful platform, but a very complex one, which means you have a steep learning curve and even though many people want to learn Kubernetes, often they don't know where to start.


So it certainly helps to have a guidance and a sort of a roadmap of how to approach learning Kubernetes efficiently. That's why I want to give you a step-by-step roadmap of what to learn and in which order to structure your learning of Kubernetes. 🤝


Now I know it also helps to have this type of roadmap visualized in a written format, so we also created an accompanying PDF roadmap for you, which you can download from our website here: Kubernetes Roadmap PDF version.


Containers are pre-requisite

Kubernetes is built on containers, so before learning Kubernetes you should be able to run and build containers.


You can learn everything you need here: Docker Crash Course


Kubernetes Administrator vs User - Most important point to consider


Here's the most important point to consider when you start learning Kubernetes, which will make your learning journey much easier and more efficient.


It is to understand the following: Kubernetes platform, like almost all other platforms, has two sides or aspects of it:

Kubernetes Administration

The Administration Side

Someone needs to set it up, initialize, configure all the essentials to prepare it for its actual usage.




Kubernetes User or Kubernetes Developer

The Platform User Side

Someone will now start actually using it deploying applications and services inside.




Just like with AWS cloud platform or Jenkins platform for example, you have to set it up like:

  • create an AWS account or

  • install Jenkins service

  • then configure the access

  • install or activate any plugins needed or services

  • secure the platform to make it usable

  • and so on

And once that's done and accesses are given, the engineers, who actually need to use the platform will create the pipeline on Jenkins or deploy their application to AWS platform and so on.


So these are two different roles and we need to differentiate and draw the line between the two. You need to understand, which aspect of the technology you want to learn and you can decide that based on your role.


Are you an application developer? 👩🏻‍💻

You need a roadmap to learn how to use Kubernetes to deploy applications and run applications inside the cluster.

Kubernetes User Learning Path

Are you an operations engineer? 👨🏼‍💻

Well then you need to learn the Kubernetes administration and operation side.

Kubernetes Administrator Learning Path

By recognizing the distinction between these two roles, you can approach your learning journey with a clear focus. 🎯


If you're a developer, your primary aim will be to understand Kubernetes usage and deployment. As an operations engineer your main focus will be on administration and Kubernetes operations.


Now you can eventually learn both, if you want to, but if you divide it and learn one part first and then build the other on top, it will make your learning process much easier and more structured, it will also be easier to connect the dots. ✅


There are even different certifications for these two:

  • CKA or Kubernetes Administrator exam

  • CKAD, which is Kubernetes Application Developer certification exam.


And just like there is no learning AWS, you learn a specific path within AWS based on your engineering role and what you want to do on AWS platform. And you also have different AWS certifications for administrator, developer, maybe mobile developer, data engineer and so on.


So when you have clarified that, then it's easier to create a roadmap to learn only the relevant services and concepts from hundreds of AWS services. 😌


So it's exactly the same concept here.


I - Fundamental Concepts 📚

K8s Fundamental Concepts that need to learn both

So we've established that we have these two separate learning paths. However, before branching off into a specific path there are fundamental concepts that apply to both, developers and

administrators.


Kubernetes Building blocks for solid foundation

So first you need to learn the basics, no matter which path you continue with. These are the building blocks of Kubernetes knowledge.


So let's explore this shared topics to lay a solid foundation for your Kubernetes learning journey first.



1 - Understanding the Why ❓

And the most important entry point to learning any new technology or tool is learn the why behind the technology first.

  • What problem does it solve that made Kubernetes so popular and widely used?

  • The whys of how Kubernetes helps solve issues of operating large, containerized applications

Once you've understood "why Kubernetes" or "what problems it solves", then you can learn how it actually solves those problems and the actual implementation of the tool and how the tool works.


So this will be the first step in grasping the fundamentals of Kubernetes.

Learning Resources


2 - Architecture of Kubernetes

Kubernetes architecture

Once you've established the why, you can dive into the core components and architecture of Kubernetes.


As part of Kubernetes architecture, you need to understand and learn about the Control Plane and Worker Nodes.


What is the role of each, how are they connected, what processes are running on them.


Learning Resources


3 - Core Objects of Kubernetes

After that you need to learn the core building blocks of Kubernetes, which are Kubernetes components. You need to understand what is a ...

Kubernetes core objects
  • Pod

  • Service

  • Ingress

  • ConfigMap

  • Secret

  • Deployment

  • StatefulSet

  • Namespaces

  • Volumes.

These are the main Kubernetes components. Understand why each one exists and what are their relations and connections to each other.


Learning Resources


4 - How K8s works behind the scenes - Kubernetes Components

Now these components that are mentioned, you work with them directly, you create the Pods, you create the Services, Deployments. You also create Worker Nodes and join them to the cluster and so on. But there are components that are part of Kubernetes that just work behind the scenes, kind of doing its magic in the cluster.

Control Plane and Worker Nodes

These are the components like:

  • Scheduler

  • Controller Manager

  • etcd

  • API Server

  • Kubelet

  • Kube Proxy

  • Container runtime


Even though you may have little to do with this directly, because they just run in the background and do the work in the cluster, but still understanding these components, what each one of them does and what is the role of each of these services in the cluster, will help you understand how Kubernetes works, the mechanisms behind the cluster, the self-healing functionality, the way Kubernetes manages the desired versus actual state and keeps them in sync, scaling deployments and so on.


So when you do things in a cluster, when you administer it or run applications inside, knowing what's happening in the background from the Kubernetes perspective will definitely make it easier for you to work with Kubernetes.

Learning Resources


II - Work with Kubernetes 👐


Now this is all theory, right? Understanding the architecture, components, how Kubernetes works. Now we need to move on to practice, because while understanding the components behind a tool is essential and that's definitely where you should start at, after that you should get hands-on, because this will give you a different level of confidence with the tool and kind of break the fear of working with it as well. 💪


5 - Accessing and interacting with Kubernetes

So with a solid understanding of the fundamentals, you can now shift your focus to understanding how to access and work with a Kubernetes cluster.

Kubectl to interact with Kubernetes cluster

As part of this, you need to learn Kubectl command line interface and its main commands, which is essentially for interacting with your Kubernetes cluster.


Whether you are an administrator or a product engineer, you need to learn this tool to perform various actions in the cluster. Again creating components, updating them, troubleshooting and viewing components, analyzing and so on.

Learning Resources


6 - Kubernetes Manifest Files

Kubernetes Manifest File

Additionally, you also need to learn about Kubernetes manifest files as part of Kubernetes basics.

These are Kubernetes YAML configuration files, which describe the desired state of your applications within the cluster.


So basically you use this to define, what Kubernetes components like Deployments, Services, StatefulSets and so on you want to create in the cluster and what configuration you want those components to have.


Here an example configuration file for a Deployment configuration:

Deployment Configuration File

And understanding how to create and manage these manifest files is going to be very important for working with Kubernetes as well.

Learning Resources


7 - Troubleshooting

You will encounter issues in K8s cluster

As you progress in your Kubernetes journey and start deploying applications inside with manifest files and Kubectl and start creating various Kubernetes components, you will definitely encounter challenges and issues in the process that require troubleshooting skills.


So you also need to learn Kubectl commands for troubleshooting as well as other ways of getting insights into the cluster and what's going on with your components, like getting insights into cluster networking, the component configuration, the runtime environment of your applications and so on:

Troubleshooting skills essential in K8s
  • Check container logs

  • Check cluster status Check Node and Pod Status

  • Verify Networking ...

So troubleshooting is an essential skill you will need to practice in order to work with and learn even more about Kubernetes and how things work inside the cluster.

Learning Resources


8 - Learn about common K8s misconfigurations

Now when you learn how to create components and run various services in Kubernetes, you will soon notice that Kubernetes is a powerful and very flexible platform.


It's not very opinionated and you can do a lot in the cluster. So it gives you a lot of flexibility, but this also means that you can do a lot wrong, like misconfiguring things with bad practices. 😱


And that's where details of common misconfigurations will actually help you a lot. Knowing from the start what are some things that people without experience in Kubernetes may misconfigure. Things that are not really logical or intuitive and where people mostly make mistakes.

Learn about Bad Practices in K8s

And I find it easier to start with bad practices and learn explicitly what not to do, before learning about the best practices, because you learn exactly what to avoid and importantly why to avoid them. 💡


This will also teach you more about how Kubernetes works and why are things a certain way.


Such details are usually missing in the official documentations or other common learning resources, which teach you about a feature or a component, but usually they don't mention such details. That's why in my educational content I always make sure to add some of the common mistakes as well as best practices that are not immediately clear or intuitive, which I myself learned from practice, so you can avoid making these mistakes as a beginner. 👍



9 - Helm Charts

Another advanced topic you can learn at this point is Helm charts, especially as you start deploying third-party services in your cluster next to your own applications.


So learn:

  • What is Helm

  • What are Helm charts

  • What are they used for

  • How they make working with Kubernetes and deploying different services easier

  • and so on

Again the same approach: First understand why we need them and then how to use them.


Learning Resources


 

So this will basically be a really solid good foundation of Kubernetes knowledge, doesn't matter which path you continue with. 😎 This will already get you to the level, where you know exactly what Kubernetes is, how to work with and you're confident with the tool.


And all this until here, you can actually learn on my channel. I have videos most of these topics, so you don't have to search for those resources elsewhere. 👍


Branch out to specific roadmap ᛘ

So now that we have a foundation of Kubernetes knowledge, based on your engineering role and direction you want to go into, you can now branch out to either Kubernetes administrator side or Kubernetes user side.


Let's start with the Kubernetes administrator roadmap first! 👏



III - Kubernetes Administrator Roadmap 👩🏻‍💻


On this foundation, you can now build the knowledge you need to administer and operate a Kubernetes cluster.


10 - Self-Managed vs Managed Kubernetes Service

First start by understanding different ways of operating Kubernetes cluster, like self-managed and Managed Kubernetes Services, which are offered by cloud providers, such as AWS EKS or Azure AKS.

Self-Managed vs Managed Kubernetes Service

Understand the pros and cons of each one and the differences between them.


This will help you make informed decisions about how to operate Kubernetes cluster for your specific organization or your engineering teams.

Learning Resources



11 - Networking in Kubernetes

Another important concept you need to learn as a Kubernetes administrator to do your job effectively, is Networking in Kubernetes. Networking plays an important role in how various components communicate within a cluster.

Networking in Kubernetes

You should learn the concepts such as:

  • Ingress

  • Network Policies

  • Pod-to-Pod communication

  • Pod-to-Service communication

  • Kubernetes Network Interface

  • Network Plugins

  • Cluster DNS service

  • and so on

Understanding these networking concepts is absolutely essential, especially when you want to administer a self-managed Kubernetes cluster. Troubleshooting and fixing networking issues is very difficult 😫, if you don't understand properly how Kubernetes networking works.


As part of networking, also understand the soft network isolation with namespaces as well as hard network isolation between cluster components and why this concept is important in general.


Now most of the networking functionality, once you install network plugin in the cluster is automatic. So in terms of establishing communication between cluster components or joining new servers to the Kubernetes network, Kubernetes does a lot of these out of the box without much effort and configuration needed from administrator, which is great. 😀

Learning Resources


12 - Cluster Access Management 🛡

But there is another essential responsibility of a Kubernetes administrator that you need to explicitly configure and set up and you need to set up properly with best practices, and this is cluster access management. Basically: who can do what in the cluster. 👀

RBAC to control who can do what in the K8s cluster
RBAC to control who can do what in the K8s cluster

As I said Kubernetes is complex and powerful, so you don't want unauthorized people with little knowledge of Kubernetes to have admin permissions to mess everything up. So understanding Kubernetes RBAC or Role-Based Access Control is very important to make sure that everyone has correct access permissions to the cluster resources and everyone can do their job without messing things up in the cluster.


For this you need to learn Kubernetes components, such as:

  • Roles and RoleBindings

Roles and RoleBinding
  • ClusterRole and ClusterRole Bindings

ClusterRole and ClusterRoleBinding
  • ServiceAccounts

  • Kubeconfig and how it works

  • Creating client certificates in Kubernetes for human users

  • How to integrate various authentication services in Kubernetes cluster

So you can give engineers in your organization access to the cluster more easily as an administrator.

Learning Resources


13 - Data Management and Data Backups

Kubernetes Data Backups

You also will need to take care of data backups in Kubernetes. You need to make sure to have a proper mechanism in place to easily recover your cluster in case of a disaster.


For this you need to understand generally how data is managed in Kubernetes and that by default you have no data persistence in Kubernetes and generally in the container world!


You need to understand:

  • Application Data: Understand the concept of Volumes and how data is plugged into the cluster services through Volumes

  • K8s Cluster Configuration Data: Apart from the application data, you also need to understand etcd, which is data storage for Kubernetes cluster configuration data itself. And you need to understand what's stored inside, how to backup and secure etcd store with all its sensitive cluster data

  • Securing secret data for various cluster applications

Learning Resources


14 - Kubernetes Operators

As a Kubernetes admin you also need to learn the concept of Kubernetes operators. When you start deploying more complex stateful applications, like databases in your Kubernetes cluster, you will come across the operators.


Kubernetes operator is basically the service itself bundled with the intelligent logic of operating that service automatically within the cluster:

Kubernetes Operators

So instead of human intervention of setting up, initiating and maintaining that service, so basically operating the service, the automated operator does all that, which is a powerful extension of Kubernetes capabilities.


So understanding this concept, learning how to deploy and use operators, will help you a lot in administering the cluster. ✅

Learning Resources


15 - Monitoring K8s cluster 🔎

To have insights into what's going on in your cluster you need monitoring. And it's your job as a Kubernetes administrator to take care of configuring and setting up monitoring on a K8s cluster level. You can't manage and administer or fix what you can't see. 👀


Prometheus Stack to Monitor Kubernetes Cluster

One of the most popular tools for monitoring in Kubernetes is Prometheus.


And when you deploy a monitoring stack including Prometheus, AlertManager and all the components that come with it, you will be able to deploy it with a Kubernetes operator.


Which again means all these skills that I just mentioned kind of stack up on top of each other and each one kind of helps in doing the other task better.

Learning Resources


16 - Best Practices

Kubernetes Best Practices

And generally for all the above administrative tasks you need to learn the best practices as well, not just any way of doing it and configuring it so that it works, but the best way of operations and security in Kubernetes. ⭐️


So that's basically your roadmap if you want to become a Kubernetes administrator and learn that aspect of the platform. 👏

Learning Resources


Kubernetes Administrator Course

Now having a roadmap like this is great for structuring your learning, but you still need to:

  • find the right resources that explain these concepts properly

  • you have to put them in the right order

  • make sure you don't miss any important topics

That's still a huge effort to research all of these and drains the motivation right at the beginning. 😫


So instead as a simpler alternative you can consider enrolling in our pre-structured course, where I already did all that heavy lifting of creating the perfect curriculum with the right hands-on projects and practical examples for these specific learning path.


Many of our students right after completing the course successfully passed the CKA exam and became Certified Kubernetes Administrators only through this course. 🔰 But more importantly, because for me this is more important than the certification it's itself, they are actually able to apply the knowledge from the course directly in their work and actually administer a Kubernetes cluster. 💪


So if you are interested in this path, definitely check out our CKA course to make your life easier.



IV - Kubernetes User Roadmap 👨🏼‍💻


Now of course we don't operate Kubernetes just for the sake of operating it, right? A product team actually needs to use it. So that's the Kubernetes user or developer roadmap.


10 - Deep Dive on Deployment Components

As a Kubernetes user your main goal is to deploy and run your applications in a Kubernetes cluster with high availability, meaning even if something happens in your application it's still accessible for users and that's where Kubernetes power actually lies.

Deep Dive into K8s Deployment Components

So you need to understand the concepts of:

  • replicating your application in Kubernetes

  • scaling your application up and down to adjust to the load

And for that you need to learn more about:

  • Deployments

  • ReplicaSets

  • How to configure readiness and liveness probes

  • Learn how to achieve all that for stateful applications as well


Deep Dive on K8s Manifest Files

But as I mentioned at the beginning, all such cluster components are defined through Kubernetes manifest files.

Send K8s manifest files to K8s to apply them

So we send those manifests to Kubernetes to actually apply them and they contain a definition of what the desired cluster state should be.


Again what should be created, updated and so on. Which means as a Kubernetes user you need deeper knowledge of Kubernetes manifest files: syntax, structure, configuration details for different Kubernetes objects like Deployments, Services etc. So basically learn different configuration options for core K8s resources:

  • Again how to configure liveness and readiness probes for your applications inside the Deployment configuration file

  • How to define Init Containers

  • How to use Volumes, understand the types of Volumes to decide which one is the best for which use case and application

  • And how to configure that for your application definition

  • How to configure Services for different applications with different Service types and so on


11 - Deployment Strategies

Another important thing to learn as a Kubernetes user is deploying your application changes without causing your application downtime or deploying without risking that the application changes may crash the entire application in a production environment. ⚡️

Blue-Green Deployment Strategy

For that you need to learn deployment strategies that you can use in Kubernetes, such as:

  • Canary deployments

  • Blue-green deployments

  • Rolling updates and rollbacks

And when you know these deployment strategies, you can decide which one fits best for your application and for your cluster.

Learning Resources


12 - CI/CD Integration

When deploying your application changes to Kubernetes, you won't be doing that manually. As part of your developer workflow, you will have CI/CD release pipeline configured that actually deploys to the end environment.


So you need to learn how to integrate CI/CD into Kubernetes cluster to do automatic deployments, whether it's a self-managed or managed Kubernetes service:

Integrate Kubernetes in CI/CD pipeline
Deploy to Kubernetes cluster from CI/CD pipeline

Again with best practices and the right deployment strategy for your application within the frame of Kubernetes.

Learning Resources


13 - Application Networking (Service Mesh, Ingress)

Knowledge of those configuration details that I just mentioned may be even more important when you're deploying more complex microservice applications, because now you have to connect them properly within the cluster and configure all needed third-party services for your microservices application.


And that's where you will need to learn more about services that you can deploy inside cluster for such microservices application, like a service mesh for example:

Service Mesh

You also need to understand how to handle traffic to the cluster as well as between your services:

Ingress to handle traffic to the cluster

Learning Resources


So that will be the part that covers usage of Kubernetes to the advanced level. 👏


Now hopefully this gives you a clear roadmap of how to structure your learning and helps you get started.


V - Learning Resources

Learn Kubernetes

There are many resources out there:

  • official documentation

  • blog articles

  • individual videos

...that you can put together to learn all this stuff.

Put together your own learning resources

But I know from experience that this is still a lot of effort and time to research and find the right resources, thinking about the roadmap and structuring, having to collect all the learning resources, analyze which ones are easy to follow and understandable, not outdated, not missing important information, making sure you don't have knowledge gaps left and so on. 😣


If you don't want to go through this process and make it easier for you, save your time and energy as I mentioned before, you can use our courses to learn all this. 🚀

K8s Learning Path

You just follow the prepared path, which is perfectly laid out for you and learn both the whys to really understand the concepts as well as how's of practically working with the tool and actually implementing these things.


The below would be the TechWorld with Nana Learning Path, which you can use ⬇️



0 - Getting Started - Our Kubernetes Crash Course on Youtube

So in terms of learning resources, as a starting point for the shared knowledge that you need for both directions, you can use:

Which are both on my YouTube channel and absolutely free.


1 - For K8s Administration: Continue with CKA Course


If it's easy to follow and understandable for you and you decide you want to learn Kubernetes properly to the advanced level, for the administration path you can use our CKA course.


2 - For K8s Usage and Operational Parts: K8s in complete DevOps process

Learn K8s in combination with different DevOps technologies

And if you want to build on top of that, learn how to use Kubernetes to the advanced level as well as other operational parts of Kubernetes, you can enroll in our DevOps Bootcamp, where I teach Kubernetes in combination with various other DevOps technologies, including:

  • The managed Kubernetes service, AWS EKS

  • Automating Kubernetes cluster provisioning with Terraform

  • Deploying from Jenkins CI/CD pipeline to Kubernetes cluster

  • Monitoring and alerting in Kubernetes

  • and more

Based on actual real-life use cases that you can apply directly at work as an engineer.


3 - Advanced Security in Kubernetes (Complete DevSecOps)

Level up with DevSecOps Bootcamp

And if you want to take it even one step higher and learn about the security best practices and secure configuration of Kubernetes cluster specifically, then soon we are releasing a full DevSecOps bootcamp, where a large part of that bootcamp will actually cover Security in Kubernetes to the advanced level.

But Kubernetes Security is just one part of the whole Bootcamp.


Security is actually a high priority at companies, so knowledge in this field makes you even more valuable on the job market.

Different steps to learning and acquiring new engineering skills

So you can also use these courses as different steps of learning the basics and then moving to the next level of learning and acquiring new engineering skills.


Learning Tip 💡

But regardless of which resources you use to learn, be sure to follow this roadmap step by step for each concept. First understand the why and then immediately put it in practice, so you can have the full picture of the theory and practice.


Learning on your Own 👨🏼‍💻

If you decide to learn yourself, take a containerized dockerized, open source application and deploy that to a Kubernetes cluster. You will learn a lot in that process alone to at least get started and break through the fear of working with Kubernetes.


I hope this comprehensive roadmap will guide you through your Kubernetes learning journey.


💬

Please let me know in the comments, if it did actually help to break it down like this and also if you want me to do similar roadmaps on any other technology or platform? 🤔


I try to read all your comments and respond to all of them as much as I can and I absolutely appreciate hundreds and thousands of positive comments and amazing feedback you guys leave.


So thank you for that! 💙


We have also put together a PDF version of this here: https://techworld-with-nana.com/kubernetes-roadmap

 

Like, share and follow 😍 for more content:

bottom of page