I’m thinking about starting a self hosting setup, and my first thought was to install k8s (k3s probably) and containerise everything.

But I see most people on here seem to recommend virtualizing everything with proxmox.

What are the benefits of using VMs/proxmox over containers/k8s?

Or really I’m more interested in the reverse, are there reasons not to just run everything with k8s as the base layer? Since it’s more relevant to my actual job, I’d lean towards ramping up on k8s unless there’s a compelling reason not to.

  • LetMeThinkAboutIt@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    Why not do both ? As I understand it, to do kubernetes clusters, you must have at least 3 hosts. They don’t need to be 3 different physical hosts: they could be VM (hosted on Proxmox).

    Proxmox also having a very strong implementation of ZFS, then it could be used as the storage « host », and it gives you also the option to do snapshots of the VM (and the storage pool), as well as replication/etc.

    • scottyjoe9@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      A k8s cluster can run on a single host if that’s what you want. I’m not sure if it would be worth the virtualisation cost to run it on VMs in the middle as well. If you were only ever going to run on a single host I probably wouldn’t use k8s though, I would just run containers. 🤷‍♂️

    • redcalcium@c.calciumlabs.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      You only need 3 host if you want to load-balance etcd, which I think totally unnecessary for selfhosting purpose. Some downtime when updating kubernetes is acceptable in selfhosted environment for personal purpose.

    • aksdb@feddit.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      They don’t need to be 3 different physical hosts: they could be VM (hosted on Proxmox).

      That is fine for training purposes, but not for real hosting. You typically don’t guard against software crashes, but against hardware failures/outages. And this it not given with all three nodes on the same physical system.

      In that case you can simply skip the HA setup and go with a single node. Or not use k8s at all and just manage containers using ansible and systemd or whatever.