• darthsundhaft@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    9 days ago

    I still don’t quite understand why use k8s. I think to say that it’s the same deployment everywhere, at least to me as someone who doesn’t know kubernetes, really it’s the container images and maybe container files that “keep the same things” across deployments.

    I’ve always heard of Kubernetes as being for orchestration more than anything. Would like to hear where Kubernetes makes sense and where it doesn’t make sense. Also, what problem is it actually solving that I can’t already do with just running a container or 2 with docker or podman?

    • PM_me_your_doggo@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      9 days ago

      At the level of a container or two it is not really useful.

      But if your load is high enough that you need hundreds of them, it becomes pretty great. Imagine you have a service that is big enough to have 20 pods of frontend, 20 pods of backend and 5 pods with database. You will want to have some kind of load-balancer for them, also you want to check that they all up and have the same configuration between them. You also want some internal network routing. Probably you want to gradually deploy updates. Probably you want some area where your devs can play around testing stuff. That’s where you need k8s, it does all this.

      It has its price though - you need a separate server just to host k8s, actually you need three of them in case of hardware failures.

      So, basically if your hw park is big enough that you can spare three hosts for management cluster, you probably want k8s. If it’s less, you can manage it with more manual means.

    • Pieisawesome@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      4
      ·
      9 days ago

      Kubernetes is big, complicated, and complex. You don’t need it for home usage at all.

      However, it has so much out of the box and extensions and extras to fit any organization.

      Imagine you have to host thousands of containers to match your scale. Load balance across all of them, maintain hard tenant isolation, mTLS, observability, etc.

      How do you manage if one service out of hundreds (or more) breaks? Should all services break? Some? Service mesh on k8s enables this.

      If you tried to build a new k8s with feature parity, it would be just as complex.

      I help organizations containerize and move onto k8s and regularly tell people it doesn’t make sense.

      It also doesn’t make sense to jump directly to it unless your team already has experience.

      Start with containers, either docker or podman. You’ll get surprisingly far with either.