Advice Needed for Setting Up Kubernetes on a Single Physical Server

0
10
Asked By TechieExplorer42 On

I'm trying to figure out the best way to set up a small Kubernetes architecture for internal use. I've got just one physical server, but I want to make sure it's reasonably reliable for supporting a small to medium-sized company with about 50 users. Here are the hardware specs I'm working with:

- **CPU:** Intel Xeon Silver 4210R (10 cores/20 threads, 2.4GHz, Turbo, Hyper-Threading)
- **RAM:** 128GB (4 x 32GB RDIMM 2666MT/s)
- **Storage:**
- **HDD:** 4 x 12TB 7.2K RPM NLSAS (planning for RAID 10)
- **SSD:** 2 x 480GB SATA SSD (planning for RAID 1 for OS/VM storage)
- **RAID Controller:** PERC H730P (2GB NV Cache)

I'm considering two different approaches for Kubernetes:
1. **Option 1:** Set up 6 VMs on Proxmox: 3 control plane nodes and 3 worker nodes, potentially using Longhorn for distributed storage (even though all nodes would be on one physical host).
2. **Option 2:** Create a single control plane and worker node VM or just do a bare-metal install and run all pods there to utilize all available hardware resources.

My questions are:
1. With just one physical machine, should I virtualize multiple control planes and worker nodes, or keep it simple with a single node cluster?
2. Is RAID 10 (HDD) + RAID 1 (SSD) a good combination, or do you suggest a different approach?
3. For Kubernetes storage, is Longhorn the best option, or is there a more lightweight alternative for single-host reliability and performance?

Thanks for your help!

5 Answers

Answered By DataDude27 On

I'd just install Kubernetes via Snap on Ubuntu. It's been reliable in my setups, and it makes adding nodes later a breeze. Plus, patching is as easy as one command: `snap refresh --channel=1.34-classic/stable k8s`. This could be a great way for you to go.

Answered By CloudyAdventures92 On

Given that it’s a single machine, I think it's best to go with a straightforward setup using k3s. Why complicate things with multiple nodes when they all run on the same box? You'll just add unnecessary complexity without any real gain in reliability.

Answered By PerpetualLearner On

If it’s for a local environment, I'd suggest deploying everything directly onto the server or again, use k3s for simplicity.

Answered By NerdyBuilder88 On

I wouldn't trust the hardware RAID controller much since recovery can be tricky. I’d suggest using software RAID with mdadm instead. For your setup, install Talos Linux as your minimal Kubernetes OS on the RAID 1 SSDs. If Talos seems too unfamiliar, you can always use k3s on a stable Linux distro, like Debian LTS. Once Kubernetes is up, try using GitOps with ArgoCD for managing the rest of your stack. I'd also recommend using the 4 HDDs for Longhorn configuration.

CuriousTechGuy -

I didn't know about Talos before; I'll definitely check it out!

Answered By SimpleSysAdmin On

If it’s just for local development, I’d throw everything on that server or stick with the lightweight k3s option. It’s easy and gets the job done.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.