top | item 29756204

Ask HN: Is it still worth learning Kubernetes in 2022?

65 points| rainboiboi | 4 years ago

I'm building up a list of technology to learn in 2022 and I'm wondering if going deep dive into K8s is worth the time.

Background: I'm a ML Engineer building up skillsets in MLOPs. I have experience with AWS and have a couple of AWS certs under my belt. For now, I'm reviewing how deep I should go with K8s, e.g. getting CKA certified etc.

Thoughts, please?

55 comments

order

evercast|4 years ago

My bet is that K8s will not only be worth learning in 2022, but also easily beyond. It is now a common infrastructure component of projects I participated in (some always used it, some are starting to). IMHO Kubernetes is quickly becoming the standard infrastructure API. Even if you don’t use all features, it’s just simpler to deploy a cluster and have everyone work on the same subset of abstractions. I am not sure if there is anything on the horizon stopping it anytime soon?

avereveard|4 years ago

Even if one is deploying lecacy application, as long as you can pack it into an image, kubernetes removes a truckload of busywork around maintaining the nodes os, managing high availability failovers, error recovery in general etc.

That's a lot of maintenance code one doesn't have to write and instances one doesn't have to manage.

The only thing I miss is a way to have a live debugging environment for developer or one that can be quickly started off local build outputs, then it'd be perfect.

BossingAround|4 years ago

In my opinion, it is becoming the de-facto standard. Containers are the new packaging format. K8s YAML files are the new runtime config. Helm bundles it together.

I have no idea if ML goes in the direction of K8s, but a lot of the field is.

As a side note, CKA equals to a very gentle getting started with Kubernetes. I have it, it's a fun way to learn, it's the equivalent of passing an undergrad-level 101 class (with the difference of CKA being objective-based).

harel|4 years ago

Most projects I get involved in that can afford a k8s resource, implement k8s. It's a beautiful piece of technology and I think we'll only see more of it. So, yes. I think it's worth it.

herodoturtle|4 years ago

Heya, there are free courses on Coursera you could take a look at - just to get a taste.

Since you mentioned you do ML and work with AWS, perhaps check out this free course on building containerised applications in AWS:

https://www.coursera.org/learn/containerized-apps-on-aws

It’s only 12 hours, so a minimal time investment. And from there you can then decide your next step.

Good luck! And happy new year ^_^

jslakro|4 years ago

Any other recommendations outside of aws?

sph|4 years ago

I didn't get the memo that k8s has gone out of fashion since last year. If you're in devops, you will eventually have to deal with k8s.

There's no need to go very deep into it unless you want to, but you are expected in this day and age to have at least basic familiarity with it.

sgt|4 years ago

That's not exactly true though. You can do "DevOps" and horizontal scaling (or simply no scaling) by other means too. K8s may be the best for large deployments overall, but it's not a requirement. Lots of companies run large scale services without k8s.

erulabs|4 years ago

Yes! If you're into ML, I recommend checking out https://www.kubeflow.org/ as a way of learning Kube (after you grok the basics). You can do some really neat things with a cloud-like API, especially if you can slap it onto a couple physical rigs with big GPUs - it really starts to standardize ML tasks quite nicely.

I'm biased I suppose - I run a self-hosting / home-hosting startup and we ship k8s on Raspberry Pis into users homes!

f0e4c2f7|4 years ago

Ha! Hadn't heard of this. Very cool startup idea, good luck!

wreath|4 years ago

Learn what problem(s) it solves, how it's used, and how it's designed. If you have a use case for it, this knowledge will make it easier to assess if it's the right tool for you and to get up and running with it if need be.

tmikaeld|4 years ago

For horizontal and automatic scaling, I don't see many other viable alternatives for managing networking, load balancing, configuration and scheduling.

Most server software these days have Kubernetes and helm charts available, since the industry giants focus on it, which means it's here to stay.

It might be worth getting a certification in Kubernetes orchestration management instead, like Rancher or Nomad (with Vault & Consul).

cyberge99|4 years ago

I was just going to mention Nomad, Consul et al. They’re maturing well and Nomad is light on resources.

Matthias247|4 years ago

Do you have a job that requires it, or a side project which requires it? If yes, then likely it is, and you can probably learn it on the job.

If not then the question is "what for", and whether you will actually use it. I don't believe learning infrastructure tools for a potential new job is worth it, because there's so many flavors of it and every company is doing their own thing there anyway. Even if one ends up at Google, AWS or another big company chances are high something else than K8s is used - and not because K8s is already too old but just because they never onboarded to it and have other systems in place.

agjmills|4 years ago

With your ML background I'd probably focus on things like AWS Sagemaker and going from dev to prod in a sensible fashion.

rainboiboi|4 years ago

Thanks, I agree that AWS Sagemaker would make sense and I'm already in the process of mastering it.

Fiahil|4 years ago

Yes.

Kubernetes is for making portable infrastructure. It’s the “Docker” of networking, load balancing, configuration, and scheduling.

orzig|4 years ago

I don’t think it is “going away“ in a general sense anytime soon. The main counter argument is that it is more complex than you need, but of course this depends on your (more likely “your organizations“) needs. That can be hard to forecast on a 10 year timeframe, but I personally got dragged kicking in screaming into it last year and I can’t imagine I would’ve avoided it for much longer anyway.

So learn from my mistake and spend some time getting the basics before it’s added as a last minute requirement of your project! The bright side is that I, and probably you, don’t have to be the companywide expert at it, just know enough vocabulary and concepts to ask smart questions as you fit an existing install to your needs

roschdal|4 years ago

No. Useless and overly complicated.

tmikaeld|4 years ago

What's the alternative?

unixsheikh|4 years ago

No. It adds nothing but unneeded complexity to the stack. Learn how to package your software and use the package manager. You can combine that, if you must, with any kind of config manager like Ansible or something else.

So many companies are doing what's "trendy and shiny", and it can almost look like it is becoming a de-facto standard, but they will eventually realize the mistake.

mohanmcgeek|4 years ago

Learning ansible in 2022 would be what's a waste of effort as every company that I know is phasing it out in favour of immutable infrastructure via OCI images.

It's been 7 years. Kubernetes isn't trendy or shiny. The teams using it use it because of legitimate reasons.

KaiserPro|4 years ago

Its worth having a brief understanding, then ignore it and use aws batch(for ML/non realtime stuff, it has far better DAG primitives).

k8s is a bad fit for most things, but people feel very happy using it, so might as well jump on board the bandwagon.

For small deployments (<20 instances) with a few services, ECS is far easier. Even though its annoying and opaque.

mrweasel|4 years ago

If you plan to manage on-prem Kubernetes clusters, I’d look into the certifications. If you just want to deploy to Kubernetes I wouldn’t bother.

In many field basic Kubernetes skills have become expected, but you don’t need the certications to prove it.

It may depend on where in the world you’re located.

rainboiboi|4 years ago

I have the opportunity to setup a K8s cluster (simple one) on-prem and get it to work. It was an interesting experience.

But I'm also cognizant that as more applications are built on top of cloud native services (AWS/Azure/GCP), how relevant then would K8s be?

spicyusername|4 years ago

I don't know if it should be highest on your list of things to learn, since ML and Kubernetes are still mostly orthogonal technologies, but Kubernetes will be around for a while in the industry, so learning will continue to be worth something.

mianos|4 years ago

Still well worth learning. For many applications k8s is a great solution. That said, it is inappropriate for as many situations as it is.

For ML it is good to know k8s to use it at a lower level via some DAG framework, such as Prefect.

discordance|4 years ago

Look into k3s rather than k8s.

Much simpler to begin with, smaller footprint/requirements and does 90% of what I have needed.

niborbit|4 years ago

Define “worth it”

rainboiboi|4 years ago

I define it as an opportunity cost to learning another technology or language that is in demand in the market. In other words, my perspective is from a career building (increasing total compensation, i.e. $) point of view.

quickthrower2|4 years ago

Similar to “is it worth learning React”, I would say yes. K8s like React for front end has shown itself to have the mindshare so well worth investing time in career wise.

bullen|4 years ago

No, if you are ok with Java you can use the classloader instead, I have been using hot-deploy on all my live projects for a decade now:

http://host.rupy.se

I can even release a new version of my sites without the online users noticing!

robertlagrant|4 years ago

I do wonder sometimes if (you're willing to stick to Java then) you could use OSGI and get a lot of the same benefits. But I never went that far into OSGI to really know, and I like SQLAlchemy too much these days!