Ask HN: Is it still worth learning Kubernetes in 2022?
65 points by rainboiboi 3 years ago | 55 commentsBackground: 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?
- evercast 3 years agoMy 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 3 years agoEven 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.
- davejohnclark 3 years agoHave you tried using something like telepresence (https://www.telepresence.io/) to get a better debugging story? It's not perfect but I've used it to good effect in the past to help with some aspects of the local development story, and they've made some pretty significant improvements in telepresence 2. Not affiliated in any way, just someone who's found it a very useful tool when working with kubernetes.
- davejohnclark 3 years ago
- avereveard 3 years ago
- BossingAround 3 years agoIn 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 3 years agoMost 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 3 years agoHeya, 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 3 years agoAny other recommendations outside of aws?
- jslakro 3 years ago
- sph 3 years agoI 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 3 years agoThat'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.
- 1_player 3 years ago> Lots of companies run large scale services without k8s.
Lots more do so using k8s.
The question is "is it worth learning it?" And the answer is yes. It's not wasted time or energy to learn the most popular and du-jour orchestration system.
- Jach 3 years agoIt's still probably a good idea to get familiar with it though if in the near-term you're entering devops or wanting to move off something else. But for everyone else, it'll probably pass and give way to something different. Things come and go all the time, one doesn't need to learn them all, though I'm sure some people find enjoyment in trying their hardest to do so.
- 1_player 3 years ago
- sgt 3 years ago
- erulabs 3 years agoYes! 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 3 years agoHa! Hadn't heard of this. Very cool startup idea, good luck!
- f0e4c2f7 3 years ago
- wreath 3 years agoLearn 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 3 years agoFor 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 3 years agoI was just going to mention Nomad, Consul et al. They’re maturing well and Nomad is light on resources.
- cyberge99 3 years ago
- Matthias247 3 years agoDo 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 3 years agoWith your ML background I'd probably focus on things like AWS Sagemaker and going from dev to prod in a sensible fashion.
- rainboiboi 3 years agoThanks, I agree that AWS Sagemaker would make sense and I'm already in the process of mastering it.
- rainboiboi 3 years ago
- Fiahil 3 years agoYes.
Kubernetes is for making portable infrastructure. It’s the “Docker” of networking, load balancing, configuration, and scheduling.
- orzig 3 years agoI 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 3 years agoNo. Useless and overly complicated.
- tmikaeld 3 years agoWhat's the alternative?
- ruuda 3 years agoPackage your software with any regular package manager (or even as a container image if you prefer), run it with systemd on a VM, manage with Ansible or any other config manager. Or use NixOS. Most things don't need autoscaling, and binpacking multiple services onto machines only starts to make sense if you can do it at a very large scale.
- otabdeveloper4 3 years ago> Most things don't need autoscaling
Correction - most things can't be autoscaled. I'll eat my hat if more than 25% of existing k8s clusters can even autoscale. Most will use PVC's and other stupid overengineered hoops to bind CPU to specific physical storage.
TLDR - k8s is just a painful enterprise thing to justify ops budgets for BigCorp. (Presumably, to counteract the fact that much of that budget went into "the cloud" lately.)
- otabdeveloper4 3 years ago
- stock_toaster 3 years agoLambda like services, edge computing (cdn micro vm’s), hashicorp nomad… lots of things.
- mhoad 3 years agoProbably a managed serverless offering.
Not sure that sounds right for what the OP was suggesting though but in fairness I know almost zero about ML/AÍ kind of workloads.
- mohanmcgeek 3 years agoWhy would someone choose a managed severless offering, the interface for which changes from provider to provider, over _managed_ Kubernetes which comes with transferability of skills should your org decide they also need to run on another cloud provider.
- mohanmcgeek 3 years ago
- yowlingcat 3 years agoCDK + Fargate.
- ruuda 3 years ago
- tmikaeld 3 years ago
- unixsheikh 3 years agoNo. 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 3 years agoLearning 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.
- sshine 3 years agoAnsible is not a waste of time. It's a tool for a certain set of tasks.
I learned Ansible in 2021 after mainly having used Kubernetes, Helm and Terraform at work.
I did that because I needed to deploy self-hosted Kubernetes nodes, virtual machines and VPNs; while there are Terraform providers (drivers) for open-source hypervisors, you still need to get your OS from vanilla to installed-and-configured. Ansible does that.
And yes, you could build install images and deploy them directly on your hardware. But with certain non-cloud datacenters, the pick-your-image option is sometimes limited. Being able to pick some preferred vanilla image and run the same commands to get the same node up and running is just so easy to experiment with, and it works even before your image registry server is up and running.
- BossingAround 3 years agoI'm not sure how you can replace your infrastructure with an OCI image, provided that OCI image means a container image?
I don't think Ansible is a waste of effort. For example, we have OpenStack images that we spawn, but use Ansible to have repeatable builds of those images. Additionally, you can learn enough Ansible in a weekend to be dangerous. IMO the payoff is there, it's a very simple yet effective framework, depending on your usecases.
- sshine 3 years ago
- mohanmcgeek 3 years ago
- KaiserPro 3 years agoIts 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 3 years agoIf 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 3 years agoI 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?
- nocture 3 years agoOn the contrary, as companies rely more and more on the cloud, they chase the mirage of avoiding lock-in even more and k8s plays a big role in this
- rainboiboi 3 years agoYes, I suspect there would be a rise in multi-cloud setup and K8s skills might be valuable here.
- mrweasel 3 years agoSeems very much in line with the solutions we see from customers. I still think there a big savings in embracing the managed cloud service of the individual providers, but customers see it as a risk.
- rainboiboi 3 years ago
- k8sToGo 3 years agoI mean we are using AWS, but at the end it is still Kubernetes underneath (EKS). So the concepts still apply.
- nocture 3 years ago
- rainboiboi 3 years ago
- spicyusername 3 years agoI 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 3 years agoStill 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 3 years agoLook into k3s rather than k8s.
Much simpler to begin with, smaller footprint/requirements and does 90% of what I have needed.
- niborbit 3 years agoDefine “worth it”
- rainboiboi 3 years agoI 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.
- robertlagrant 3 years agoI think it's worth learning as an indirect awareness skill anyway - if you go somewhere and you can k exec into a pod (and know what that is) off the bat then that's good.
That's the sort of thing that makes people really useful - not relying on another "infra" or (sigh) "devops" person to do the basics.
- 4140tm 3 years agoIt's not a huge investment to learn. At the same time it's very valuable. I would prepare for CKAD first and do CKA only if relevant.
- robertlagrant 3 years ago
- rainboiboi 3 years ago
- Tim25659 3 years agoLearn k8
- guender 3 years ago
- quickthrower2 3 years agoSimilar 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 3 years agoNo, 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:
I can even release a new version of my sites without the online users noticing!
- robertlagrant 3 years agoI 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!
- bullen 3 years agoOSGI is bloated and pretentious, just use the classloader, it takes 300 lines of code and you have the best container in the world, see my Archive class:
https://github.com/tinspin/rupy/blob/master/src/se/rupy/http...
What does SQLAlchemy have to do with containers?
- robertlagrant 3 years agoI must have been tired. I meant I don't want to only use Java, and thus I can't use OSGI (or the classloader - I'm sure you're right); Docker and k8s are definitely good for allowing you to use whatever tools you like.
- robertlagrant 3 years ago
- bullen 3 years ago
- robertlagrant 3 years ago