When running a server it's easy to focus so much on the hardware that you forget what you will run on that hardware. Although Kubernetes doesn't really care what it runs on, you'll still want something that's easy to update and maintain. This can be done via automation such as Ansible or Terraform or ommited entirely depending on your environment. For this reason I recommend the following options:
Ubuntu Server is my default choice when it comes to running a server. Easy to install and configure and has the widest range of software compatibility along with being an industry staple alongside RedHat.
When going through the install I asssign a static IP address and chose not to setup the install disk as an LVM since that has caused me problems when wiping the server.
Think of Fedora as the more bleeding edge version of RedHat. While both provide a nice web interface to manage the server through via Cockpit, you can also install Cockpit on any other Linux server.
The main difference between Fedora and RedHat is that RedHat is more business focused and requires a license to use. You can still build a server using Fedora but I mainly stick to Ubuntu Server as Fedora has given me some issues.
Probably my favorite in terms of modularity and compatibility, Arch has extensive documentation and compatibility through the Arch User Repository (AUR). While it may have been hard to install in the past, scripts have been created to guide you through the process like a normal installer. The Arch Wiki is also a great source of information since it documents basically everything that can be done on Arch.
While Arch is a great minimalist choice you may run into issues with needed packages not being installed by default. This can be a bit of a hassle if you are just figuring things out. You might also run into issues with packages breaking since Arch is bleeding edge.
While interacting with a server directly over SSH or via a terminal, you'd want some process in place to ease that burden or make it easier to upgrade. In this instance you could use something like an Ansible playbook. You could also leverage Terraform to quickly stand up and destroy services as well.
Ansible consists namely of two things: Playbooks and Inventories
Playbooks are the actual tasks you want to perform such as updating the packages on a server or installing software.
Inventories are a list of devices that you want to run playbooks against.
Terraform is a way to standup and destroy resources on a server. These can be Virtaul Machine (VMs) or containers and can be automated via GitOps.
There is an open-source alternative to Terraform called Open-Tofu which is what I primarily use.