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.<p>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.<p>Thoughts, please?
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?
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.<p>I have no idea if ML goes in the direction of K8s, but a lot of the field is.<p>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).
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.
Heya, there are free courses on Coursera you could take a look at - just to get a taste.<p>Since you mentioned you do ML and work with AWS, perhaps check out this free course on building containerised applications in AWS:<p><a href="https://www.coursera.org/learn/containerized-apps-on-aws" rel="nofollow">https://www.coursera.org/learn/containerized-apps-on-aws</a><p>It’s only 12 hours, so a minimal time investment. And from there you can then decide your next step.<p>Good luck! And happy new year ^_^
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.<p>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.
Yes! If you're into ML, I recommend checking out <a href="https://www.kubeflow.org/" rel="nofollow">https://www.kubeflow.org/</a> 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.<p>I'm biased I suppose - I run a self-hosting / home-hosting startup and we ship k8s on Raspberry Pis into users homes!
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.
For horizontal and automatic scaling, I don't see many other viable alternatives for managing networking, load balancing, configuration and scheduling.<p>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.<p>It might be worth getting a certification in Kubernetes orchestration management instead, like Rancher or Nomad (with Vault & Consul).
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.<p>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.
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.<p>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
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.<p>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.
Its worth having a brief understanding, then ignore it and use aws batch(for ML/non realtime stuff, it has far better DAG primitives).<p>k8s is a bad fit for most things, but people feel very happy using it, so might as well jump on board the bandwagon.<p>For small deployments (<20 instances) with a few services, ECS is far easier. Even though its annoying and opaque.
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.<p>In many field basic Kubernetes skills have become expected, but you don’t need the certications to prove it.<p>It may depend on where in the world you’re located.
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.
Still well worth learning. For many applications k8s is a great solution.
That said, it is inappropriate for as many situations as it is.<p>For ML it is good to know k8s to use it at a lower level via some DAG framework, such as Prefect.
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.
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:<p><a href="http://host.rupy.se" rel="nofollow">http://host.rupy.se</a><p>I can even release a new version of my sites without the online users noticing!