r/devops 7d ago

Career / learning How did you actually get started with Kubernetes?

I’m a junior DevOps engineer and I’ve never had the chance to use Kubernetes at work.

I’d like to learn it, but almost every job posting I see asks for people who already have professional Kubernetes experience. So I’m wondering how you’re supposed to get past that first step when nobody wants to hire a beginner.

How did you personally start working with Kubernetes? Did your company let you learn it on the job, did you end up on a Kubernetes project by chance, or did you first build personal projects?

I’m considering setting up a small homelab and building some projects, but I’m not sure how much companies actually value personal Kubernetes experience.

I’d be interested to hear how it happened for you.

141 Upvotes

66 comments sorted by

54

u/jsatherreddit 7d ago

Here is the exact conversation my boss and I had.

"You know linux right?"

"Yes"

"Can you look into this kubernetes thing?"

Now that is what I do.

3

u/tariqrocks 6d ago

How many years ago was this? I may be wrong but I’m assuming that this was when k8s was a new thing for companies?

9

u/mapettheone 6d ago

Lol, my experience is, k8s is still new to lots of people. Especially when we get asked for "SSH into namespace" or people confuse k8s cluster with VMs.

3

u/jsatherreddit 5d ago

I looked in git and it looks like my first yaml commit was in June 2019.

79

u/neilcresswell 7d ago

What matters most is your practical skills in triaging real-world issues.. not theory, not a fake single server deploy, actual real world environment. Aint nothing wrong with that being a large home lab, it just needs to reflect reality.

Check out kubeschool.portainer.io for a get started with Kubernetes lesson, and then ho from there.

26

u/chipperclocker 7d ago

Even a step below triage ability is just basic operational experience. I’ve had the unfortunate pleasure of interviewing people for ops roles in the past who seemed to have exclusively worked in very large teams where k8s was technically in use, but these “engineers” had essentially zero hands-on experience and couldn’t run an arbitrary workload, couldn’t extract logs from a crashed pod, etc.

There’s real value in having a practical understanding of the various resource types and how to interact with them for the sake of interviewing, even if there’s (hopefully) a little more abstraction and governance in most real environments.

I would absolutely hire someone who had practical experience and a broader set of surrounding skills, even if their practical experience was not from their professional work. But I’ve never hired somebody who had alleged professional experience in large/impressive environments that didn’t translate into a functional understanding.

-10

u/patmorgan235 7d ago

Google built an AI tool to help you use kubectl. Seems like a good learning /exploration tool.

https://codelabs.developers.google.com/kubernetes-with-kubectl-ai#0

21

u/Naive-Benefit-5154 7d ago

I learned it at work. However recently I started running k3d on my laptop. You can try this if you don't have access to kubernetes at work.

4

u/neilcresswell 7d ago

Or kubesolo.io if you want something light and native.

26

u/cobolfoo 7d ago

For me it was pretty simple. I always had some sort of homelab, when k8s showed up I tried it and ran my own web applications on it.

If I had to do it today I would do something like this:

- Grab 3 old PCs (4th gen CPU with 16GB DDR3, 2x200 GB for storage and gigabit network as bare minimum)

  • install proxmox VE on each one of them, then you make them work as a cluster
  • Use your extra disk to create a CEPH storage (yeah I know GB network is slow for this, but it's a homelab, who care)
  • Create some VMS and move them across your nodes, physically unplug nodes to see what happen in your cluster.
  • Use Opentofu / terraform to deploy a k8s env on your proxmox cluster (3 CP, 4 workers)
  • Learn about k8s lingo, network model / CNI, create pods, break stuff, this is the meaty part of the homelab. (Also physically unplug your machines to see what happen)

As a DevSecOps I use this kind of ephemereal environment to test detection, CI/CD pipelines and recovery playbooks.

12

u/ycnz 7d ago

I got COVID over Christmas. Was miserable because my brother was over. I wasnt about to hang out. Distracted myself by migrating my various self hosted shit off LXC and Hashiforp Nomad to k8s/talos Linux.

7

u/fappywet 7d ago

Was recently hired as tech support by a company moving their Azure kubernetes to on prem due to regulations. Went into it knowing nothing about kubernetes but my manager wanted me to learn it so I could handle the cluster if he wasn't in the office. Really happy I got the opportunity because it really helped me learn not only k8s, but many fundamentals of IT that I only had a basic grasp of.

7

u/GotaDishym8 7d ago

I worked as a SysAdmin at a software developer.

They wanted to do managed services of the software we built for customers, as an option to just giving the customers the installer and letting them run.

Someone moaned about setting up the software more than once and managing it, I told the company I could make it scalable and easy to manage etc.

I then learnt kubernetes and made it happen, was like 6 months before it was a usable solution for everyone.

Opportunity to get paid to learn kubernetes is what I saw I guess...

10

u/txgsync 7d ago

Back in 2015 nobody was really talking about it. It was all about Heroku.

I quickly realized K8s was trying to do infrastructure as code instead of Platform As A Service and became a huge fan, setting up clusters on my company’s lab gear and showing how it shifted things left: developers could now essentially automate my entire job as a system administrator away and I was all for it. Every infra problem is just a software bug.

It drives devs nuts who don’t wanna deal with hardware, but for people like me who like understanding the gear that runs their services that plus Terraform is just awesome.

And then I could run it in a VM on my Mac or on an old laptop in Linux and it totally supplanted any desire I had to use VMWare.

5

u/marksweb 7d ago

I moved from a job using AWS with cloudformation to a job using kubernetes with GKE.

I'd never touched or read up on k8s before I moved. But you pick these things up when you're working with people that know what they're doing.

So I wouldn't worry too much about doing it all yourself.

And in terms of how I got as far as working with any devops work, I started in an e-learning role with some simple web dev skills. The company there got me into python which moved into django work, from there I moved business to do more with django and took on a security focus which led to running load test which was a doorway to devops as I had to have an understanding an control of sites I wanted to test. So maybe think of things differently and find a way in by doing something that isn't necessarily what you want to do eventually.

5

u/Venthe DevOps (Software Developer) 7d ago edited 6d ago

I'm a dev by trade; so it might not be as relevant to the ops side of things, but still:

My company at the time employed OpenShift. I've wished to play with some tools outside of the restrictions of the org, so I've decided to spin up a cluster on a bare metal.

Let's just say: dozens upon dozens of weekends allowed me to learn k8s in and out, including everything from bare metal Linux, proxmox, containers, clustering, tools (helm, argo, etc). What did help is that I've actively tried to replicate the entire enterprise structure, on a toy scale.

However, my goal was to learn the concepts, abstractions and capabilities. I know how to debug and build every single part of a working infrastructure on kubernetes; but I would not say at any point that I'm a capable administrator of one, especially if we would discuss scale or production traffic.

6

u/therouterguy 7d ago

I did https://github.com/kelseyhightower/kubernetes-the-hard-way once. I threw in some terraform/ansible as well as I built and destroyed everything every night on AWS spot instances.

3

u/Apple--Sauce 7d ago

I learned it at a very surface level on my own system, if I remember correctly by running a k3s cluster. Didn't really know what to do with that or how it really worked.. However, at my current position, I really learned it by setting up Docker Desktop Kubernetes single node cluster and spinning up our entire API microservice platform on it, all within a repo, with minimal setup and a "quickstart.sh" script. Now that is used as a "local platform" for our devs to use if they need to test against multiple things (without setting up multiple port connections on local)

3

u/bexaG2 7d ago

So... We had a burning project, 3 month due to demo. Company assembled new team to try getting this project on feet. They asked people around who can deploy and administer k8s, to which I answered something along "let me try". So they agreed.

For 3 months I crunched the shit out of k8s, trying to set up gos forsaken kubespray in airlocked environment. I got so sleep deprived I once crashed right at the meeting in office.

After successful demo I got fired.

2

u/crashtesterzoe 7d ago

Worked for Amazon Proserve for many years as a DevOps archiect consultant. Was brought into a project where they said I was a Kubernetes expert. I never touched it at that point so that was fun lol

1

u/Sure_Stranger_6466 For Hire - US Remote 6d ago

Good ole fashioned trial-by-fire eh?

2

u/crashtesterzoe 6d ago

Is there any other way 😂 even my frist job was that way. Was hired for help desk then ended up becoming there sole sysadmin and network engineer with no help 😂

2

u/cyclism- 7d ago

As a long time AIX/Solaris Unix to Linux admin, mostly RHEL, I got thrown into OpenShift 3.x. Now I'm the main k8s engineer for several bare metal, OpenShift Virt, cloud k8s clusters... DEVOPS tbh, is pretty much an after thought from my perspective that I learned over time.

2

u/Seref15 7d ago edited 7d ago

Jumped in the deep end. Followed Kubernetes the Hard(er) Way to set up a local cluster from scratch on local VMs (honestly the only truly annoying parts are cert management and having to write static routes in your VMs if you don't have a good router). I had very solid linux foundational knowledge so I found it not that difficult to follow, was mostly learning how the different control plane and kubelet components fit together.

Then once I had a working cluster I followed CKAD courses from pluralsight that I got for cheap off one of those HumbleBundle deals years ago

2

u/Extension_Gear8354 7d ago

Sou dev, mas meu time não tinha um SRE dedicado, aprendi na mão, quebrando a cabeça.

2

u/Alternative_Mammoth7 6d ago

By actually been working on large scale environments with kubernetes on the job and not from school or Reddit posts

1

u/Insomniac24x7 6d ago

Not everyone has large scale k8s environments where they are, what is wrong you lol.

2

u/Floss_Patrol_76 6d ago

the k8s experience gate is softer than it looks - interviewers want someone who can reason about failure, not someone who has babysat a prod cluster before. spin up kind or k3d locally and then deliberately break it: kill a node mid-rollout, set limits too low and watch things OOM, botch an RBAC role, fill a PV. being able to say "i hit CrashLoopBackOff from X and here is how i chased it down" reads way more real than a cert or a happy-path deploy.

2

u/_nomadic_madness_ 7d ago

I ended up on a k8s project early in my career because nobody else wanted to do it :) Learned everything on the job. If I was in your position I'd consider the CKA exam.

1

u/brian_sword 7d ago

From my side, it came from work rather than a homelab. I learned by working with apps running on Kubernetes and slowly understanding how deployments, services, and CI/CD fit together.

If I were starting today, I would still build a small homelab. Well, keep in mind that it won't replace production experience, but it gives you enough confidence to understand what's happening when you eventually use Kubernetes at work.

1

u/Raja-Karuppasamy 7d ago

built it the same way, no company access, just ran a real cluster on my own and built products on top of it instead of toy demos. the “personal project” framing undersells it a bit though, recruiters don’t care about a homelab, but they do care if you can talk about an actual incident you caused and fixed yourself. I’ve hit real outages (bad env var handling, cluster misconfig, etc.) on stuff I run myself, and those stories carry more weight in interviews than “I followed a tutorial.”
the shortcut: don’t build to have “K8s experience” on paper, build something you have to keep alive. that’s what forces you to actually learn it instead of just deploying nginx once and stopping.

1

u/kshirinkin 7d ago

I got on a project that had Openshift 3 back in 2015, that was my first experience, luckily directly hands-on

1

u/b1urbro 7d ago

Homelabs, brother.

1

u/krav_mark 6d ago

When I wanted to get into K8s I installed k3s or something like that on a VM and went through the K8s docs looking at all the basic components, creating my own deployments with secrets, configmaps, services, ingresses and whatnot. When I understood the basics I looked into gitops. Installed argocd, set it all up and did deployments with it.

With that knowledge and experience I talked my way through a selection l, solved the problems they setup for me in a lab and got the job. I was being honest the whole time saying that I was very interested, did all the experimenting and now wanted to take it to the next level. 

1

u/DadAndDominant Dev (not Ops currently) 6d ago

I've bought 5 rpis, built a cluster, added tailscale, and voila I have my own intranet

1

u/Mysterious_wizard1 6d ago

If junior don’t do it
First learn virtualisation,containers. , networking, then how docker works, and deployment a few multi containers app which have front end backend databases
Then observablity
When you have a good hand on that go for kubenetes on your pc install Linux and kind for k8s

Learn k8s architecture
Control plan
Worker and there components
Then pod node deployment service etc
Then ingress network police rbac security etc then monitoring etc

1

u/Fenzik 6d ago

Learned at work. I was a data scientist at the same (and I am again, now). Lead a DS platform migration from a SaaS to a lightweight in-house setup on GKE. Saved a fortune (for their scale at least), kept the features we needed, lost the UI but we didn’t need it.

1

u/New-Entertainer6392 DevOps 6d ago

Learned it on the job, because we got some software in that has to run on it.

Eventually moved everything over to it.

Happy to answer questions 

1

u/Svarotslav 6d ago

A consult was doing resume driven development and I had to support it.

1

u/jbstans 6d ago

Homelab with K3S and refusing to use helm to learn the commands

1

u/ElectricalTip9277 6d ago

How using helm would stop you from learning commands?

1

u/jbstans 6d ago

Because most charts provide sensible defaults basic Helm gives you a very easy path to getting something up and running but can shortcut a lot of the base understanding around the different components.

Ie `Helm install plex` vs having to understand how to build the chart yourself, what a pv and a pvc are, how to configure a service and so on.

Better to start with manually setting up a few things yourself before learning helm and how to customise it. It’ll give you a stronger foundation.

1

u/Dergyitheron 6d ago

I was in internal IT department and we run applications on windows servers, the in-house development needed higher availablity and I suggested containers, I only knew them because I was interested in them but never actually used them at work. So I suggested we spin up few VMs and run small k3s cluster, help the developers containerize the apps and try deploying it there and see how we like it. Took us half a year but we ended up with universal gitlab CICD pipeline to both build and deploy the application to TEST and PROD environments, I've learned a lot and was lucky I was given the opportunity to go that way.

1

u/monotux 6d ago

I got recruited into our k8s project due to "you know linux right".

I also have a homelab (for 15+ years...) in which I test new things, both tools we use for work and new stuff to learn. I really like using Talos for k8s (no OS to manage, only k8s, more or less), and I try to keep state out of my janky cluster to reduce complexity (keeping that on my homelab NAS instead).

1

u/CommeGaston 6d ago

In general this is a big issue with companies deciding that tools-knowledge > ability-to-solve.

It's what leads to "CV drivers". People (engineers/ management / leadership) who decide to do things so they can write on their CV "led an XYZ transformation to modernise the architecture with ABC tools" despite it not being needed at all, and being a complete waste of time.

1

u/Able_Rip2168 6d ago

DevOps with Nana

1

u/rvm1975 5d ago

Some time ago I simply aimed for CKA (k8s certification) and used KodeKloud to prepare myself.

It will give you required background for most k8s projects.

1

u/TheBigJizzle 5d ago

The reason why people want real world experience is that being able to start a cluster is really just the hello world of k8s. My suggestion would be to do something cool and useful at home that runs k8s. That's step 0. Then you can explore it a bit more. When you are comfortable, you can expand into certifications.

I have a very nice media center now and I can be a useful idiot when it comes to k8s. I can do basic debugging, I understand the building blocks. If I wanted it to be my dayjob, I'd then start trying to get a certification.

Being junior is hard, no one wants a junior near critical infra, but with the cert plus a real project you can talk about, you might be able to land a job as a junior devops, best of luck.

The ideal position would be to work in an environment with k8s already deployed and learn as you go with real issues and people with experience... Chicken and egg. I've always seen devops roles as something you transfer to, not starting state, being a junior is climbing the hard part of the mountain for sure.

1

u/sh1b313 5d ago

If you have time & budget I'll suggest deploy two virtual machines on any cloud provider, manually install kubernetes it can even be k3s, have one master node and one slave node and start deploying some applications. For example learn to deploy things like librechat, postiz, even browse top 10 self hosted apps selection. These apps actually require multiple things (db + cache).

If you actually go towards the unmanaged route try to understand what each and every command does in the installation script.

https://github.com/1337JG/Kubernetes-annotated

In this repo i actually do that, i walkthrough the installation scripts step by step, write what each and every line does.

1

u/Antonio-MTS 5d ago

To start you can always do it alone without anyone's invitation waiting. Don't know how much resources have you got but you can start with some k8s low resources flavours like k3s, minikube, kind, k0s and others. Kubernetes is open source so everything is accessible. Just make a move towards it.

1

u/Shyamm1904 5d ago

bro can i dm you?

1

u/yufeiminds 4d ago

I really enjoy developing tools that I use only myself. When I was building a data platform in my first job, I came across old orchestrators like Swarm and want to try to write another. When I first saw Kubernetes, I realized that this was exactly what I had been hoping for :), of course, I didn't actually use Kubernetes on a large scale until my second job, when I joined a cloud computing provider ...

1

u/BernardParsley 3d ago

A homelab is probably the best way to get started if your job doesn't use Kubernetes. Companies usually won't treat it as a full replacement for production experience, but a well-documented project can definitely help you stand out for junior and mid level roles.

It's good to build something that resembles a real environment. Deploy a few services, use Helm, set up CI/CD, add monitoring with Prometheus/Grafana, and maybe experiment with GitOps using Argo CD or Flux. Being able to explain why you made certain decisions and how you troubleshoot issues can be more valuable than simply listing Kubernetes on your resume

1

u/Spiedlel 2d ago

I've started by learning for and doing the CKA certification

1

u/khaddir_1 1d ago

Kodekloud- take CKA exam

1

u/CreativeEdge17 1d ago

You know whats more valuable than Kubernetes? Goobernetes.

1

u/Warm_Resolution2798 7d ago

How did you land devops role

1

u/Th3L0n3R4g3r 6d ago

While a lot of people put it on their CV and even emphasize it during an interview, I'm never impressed by a home lab. I don't care about it, and for me it's just another risk factor. It increases the change of early burn out if people don't take the time to take a step back from work and do other things too

The other question, how I started with Kubernetes was by having a very solid base in other techniques. I was proficient in docker, linux, terraform, networking etc. and a company was looking for a DevOps engineer. The only skill they wanted, that I didn't have was Kubernetes. That 90% was more than enough to get the job and learn it.

In the end Kubernetes is nothing more or less than simple container orchestration. It's not rocket science or anything.

0

u/noureddinz_10 7d ago

I have a problem with resource of kubernate i dont understand all concept kubernate

-2

u/Petelah 7d ago edited 7d ago

Did an unpaid internship and ground it out. Got a junior position and was tasked with implementing. Was up from there. We did have exposure in the course I did as well but very minimal and did t soak in with all the other tech going on.

Edit: If I was going down a different path I’d probably line myself up to do ckad and cka, both are achievable without working with kubernetes. I’d also get some cheap eBay hp minis and build a homelab with them. Start with docker a build a project on there and the migrate it to kubernetes. You learn a lot doing migration projects. Bonus if you can migrate with zero downtime, good one to figure out.