Hello, I'd like to ask for your suggestions on how to configure a new private server cluster for a start-up. I'm comfortable doing things in the cloud, but everything has to be private and self-hosted including code repositories, wiki, CI & CD pipeline, chat, and collaboration tools. So I'm really a noob when it comes to bare metal servers and I hope you'd help me find the right answers.
3 identical servers with this configuration: 2 x Intel Xeon Silver 4210 CPU (10 Core, 20 Thread, 2.20 GHz Base, 3.20 GHz Turbo ), 64 GB DDR4 ECC RAM, 2 x600 GB SAS 15K RPM HD.
We plan to form a cluster using these 3 servers with Proxmox VE and here is the list of items we'd like to run on using vms:
3 identical servers with this configuration: 2 x Intel Xeon Silver 4210 CPU (10 Core, 20 Thread, 2.20 GHz Base, 3.20 GHz Turbo ), 64 GB DDR4 ECC RAM, 2 x600 GB SAS 15K RPM HD.
We plan to form a cluster using these 3 servers with Proxmox VE and here is the list of items we'd like to run on using vms:
- Kubernetes cluster for running applications in multiple environments (dev, test, prod) via K8s namespaces.
- MongoDB database instances in multiple environments
- Gitlab for Git repository, wiki, issue tracking, and continuous integration and deployment pipeline
- Element from element.io for conversations like Slack or MS Teams
- Seafile for on-premises fileSharing like Google drive
- Would we face any problems configuring K8s on top of the vms? Losing some performance is not a concern here, but we're more concerned about K8s not running reliably.
- We have about 5 TB a year expected data for MongoDB and redundancy is important in case of a disk failure. Instead of relying on the server's HD for this, we'd like to find a shared storage option to have redundancy, high availability, and performance. What are our options here? I read about NAS, but it might not handle the load of transaction-intensive databases. Software-defined storage (SDS) is suggested in an article, but not really sure what it means in terms of hardware we need to buy; are we talking about something like having 2 servers with 1 CPU and less memory but lots of HDs, then just using these servers for its data?
- For Gitlab, Element, and Seafile, I'm thinking that having a NAS solution like the units Synology has would be sufficient. Again redundancy is very important here since we don't want to lose any data in case of a disk failure.
- Do we need to buy a physical firewall for this setup or Proxmox firewall would be sufficient?
- Please feel free to suggest or criticize the configuration we plan to use if you think it doesn't make sense.