Wanting to dip my toes into kubernetes for homelab stuff and I have a few questions.

  1. Do I need a specialized OS for it? I’ve been trying to get some TalOS VMs running but I’ve ran into some issues. Would you recommend like a Ubuntu server running kubernetes over something like TalOS?

  2. Could I run this on a Windows server? I’m personally a Linux guy, but a friend who prefers windows server wanted to try it and I thought I’d ask.

  3. Can I migrate Docker services to a Kube cluster? How easy is it?

  4. Any recommendations for learning materials? I’ve clearly struggled with TalOS’s quick start materials as I haven’t been able to get into the tutorial cluster made with docker locally. I keep getting weird errors and reinstalling Talosctl and docker. I’ve diagnosed this as a “skill issue”. My learning budget is like $100 for a udemy class or good interactive guide (Paid for by work apparently. I was learning this for fun, but it may actually be needed knowledge for a project)

  • vortic@lemmy.world
    link
    fedilink
    English
    arrow-up
    23
    ·
    16 hours ago

    Kubernetes has a hell of a learning curve. Once you get your head around it, it can be great but it is a huge lift to learn. For self hosting I’d lean towards docker-compose rather than kubernetes but kubernetes can be nice once you get past the super steep learning curve.

    To answer your questions:

    1. Any Linux flavor will do the job.
    2. No, windows doesn’t really play nice with containers to begin with. Kubernetes is another layer of complexity that will make it tough.
    3. Yep, definitely! This is typically done using helm charts. Helm is basically the package manager for kubernetes. There are many helm charts that you can just install into kubernetes and they’ll work for you. You can also roll your own if you have custom applications. Argocd can also be helpful depending on how deep you want to get.
    4. I’d start by looking into videos on helm charts. That said, you will need a very strong understanding of docker containers and may need a good understanding of networking.

    I would strongly recommend looking into deployment using docker-compose over kubernetes until you understand containers inside and out. While Kubernetes can be nice it akso adds another layer of difficulty. I say this as someone who uses kubernetes daily for work, uses off the shelf helm charts, and writes their own helm charts from scratch.

    • dust_accelerator@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      15 hours ago

      Adding to this (which is a solid recommendation and answer BTW), you can try out podman kube play <your-file>.yaml (see here) before going full k8s or k3s setup to familiarize yourself with the concepts, without moving too far away from the docker-compose ease of use.

      Regarding question 1, any distro works, but if your are looking specifically for a lightweight, fast to deploy node host os, I recommend opensuse microOS/leap micro or similarly, fedora coreOS. With both you can drop a combustion/butane/ignition config file in a usb installer partition, so you can quickly integrate fresh installs in your cluster (ssh, network config, user accounts, package installs) see https://opensuse.github.io/fuel-ignition/

      • vortic@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        13 hours ago

        As the guy whose comment you added to, thanks for pointing out podman kube play. I’ve ever used it before and it looks worth playing with. It’s a bit limited in terms of what resources it can create if you’re used to k8s, but it definitely looks useful for testing and quickly standing up simple apps.