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?
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.
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).
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 ^_^
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.
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.
I'm biased I suppose - I run a self-hosting / home-hosting startup and we ship k8s on Raspberry Pis into users homes!
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).
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.
Kubernetes is for making portable infrastructure. It’s the “Docker” of networking, load balancing, configuration, and scheduling.
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
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.
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.
It's been 7 years. Kubernetes isn't trendy or shiny. The teams using it use it because of legitimate reasons.
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.
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.
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.
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.
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?
For ML it is good to know k8s to use it at a lower level via some DAG framework, such as Prefect.
Much simpler to begin with, smaller footprint/requirements and does 90% of what I have needed.
That's the sort of thing that makes people really useful - not relying on another "infra" or (sigh) "devops" person to do the basics.
I can even release a new version of my sites without the online users noticing!
https://github.com/tinspin/rupy/blob/master/src/se/rupy/http...
What does SQLAlchemy have to do with containers?