kubernetes

What developers need to know about Kubernetes

Answering some of the most common questions about Kubernetes from a developer point of view.

by Christian Barra
January 21, 2021

Kubernetes and containers are the building blocks of a modern cloud infrastructure and de-facto the standard for deploying, managing and orchestrating applications at scale.

But is that a good enough reason to invest your time (and money) to learn Kubernetes as a backend or full stack developer?

I've put together this FAQ style post to clarify some of your doubts about Kubernetes and whether you should learn more about it or not.

1. What is Kubernetes?

Taken directly from kubernetes.io

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.

In other words Kubernetes orchestrates your containers.

Though there are other valid solutions to manage your workloads (Docker swarm, Nomad, OpenStack or Mesos) Kubernetes is by far the most widely used and part of the major cloud providers offer.

2. Is Kubernetes owned by Google?

No. The Kubernetes project was created by Google and has its roots in an internal project called BORG. Kubernetes was later donated to the Linux Foundation to form the Cloud Native Computing Foundation (CNCF).

3. Is Kubernetes built on Docker?

No. Docker is (or was now that it's been deprecated) one of the official container run-times.

The important thing to notice is that Docker is often used as a synonym for containers. Most of the time it's a good analogy but it can be misleading because Docker and containers are not the same thing. And while Kubernetes doesn't rely on Docker it has containers at its core.

4. Who should use Kubernetes?

Anyone that has non trivial requirements about deploying and managing applications should consider Kubernetes.

There are many ways of deploying and managing applications in the cloud and on-premise today, and using Kubernetes can be a really good strategy.

So anyone could be a good Kubernetes user candidate but not everyone should embark on the hard mission of running Kubernetes. You can use Kubernetes without having to run it, and that's the magic trick.

5. Do I need to run Kubernetes?

No. Google, AWS and Azure they all offer managed Kubernetes clusters, where you only care about the number of nodes and they take care of running the control plane (Kubernetes' brain).

Many cloud providers offer a free (or really cheap) managed version, where you only pay for nodes (virtual machines). Azure and Digital Ocean offer free managed Kubernetes clusters, Google charges about 72$/month per cluster.

6. What role does Kubernetes play for a developer?

That's a really good question. Kubernetes should simplify the you-build-it you-run-it credo.

Personally I see Kubernetes like a playground where I can run containers by declaring the ideal state and let Kubernetes take care of the rest. That applies to very different workloads, from APIs to background jobs.

6. Is learning Kubernetes worth it?

Kubernetes will evolve and change, but it's here to stay.

I compare Kubernetes knowledge to cloud knowledge. A couple of years of ago cloud knowledge was a nice to have, now it's something that you are expected to know.

I believe Kubernetes will follow a similar path.

If you check job offers on Stack Overflow, and search for backend or full stack positions, you'll see that many are mentioning Kubernetes or one of the flavored versions (GKE, AKS, EKS).

Like having hands-on experience with cloud providers, knowing how to use Kubernetes is becoming a requirement.

8. How long does it take to learn Kubernetes?

It depends. Kubernetes is really complex piece of software, administrating a cluster and deploying applications on top of it are two completely different jobs.

Running a Kubernetes cluster is a full-time job, so it does take some time. But if you are a developer, and you want to become a proficient Kubernetes user, I bet I can teach you to confidently deploy and debug applications on Kubernetes in about 2 hours.

9. Ok, got it. Where can I learn more about Kubernetes?

The official documentation is a good starting point, although it can feel a bit intimidating, there's a lot of information there and not everything might be relevant to you.

The CNCF has also courses that cover their certifications (CKA and CKAD). These courses are great, they really teach you what you need to pass the exams. But if that's not your goal there's a good chance you'll waste your time.

If you want to have a comprehensive course about Kubernetes focused on developers I am working on Kubernetes for Developers. The course teaches you all the skills you need to become a proficient Kubernetes users.

Boost your Python and DevOps skills

Get great content on Python, DevOps and cloud architecture.

You don't like spam? Neither do I!
And if you don't like what I share you can always opt-out.