skip to Main Content

I have a high-spec CPU server, and I want to use it to create a Kubernetes cluster.
The server specs are as follows:

CPU cores: 64
Memory: 1024 GiB
OS: Ubuntu 22.04

In this case, how to build a Kubernetes cluster? The questions below are for selection within my knowledge.

  1. In general, I know that Kubernetes cluster uses multiple nodes. Is it a good way to implement multiple nodes from Ubuntu server to VM in order to implement multiple nodes on a single server? (Minikube, MicroK8s, K3s on a single node are hard to choose in the current situation.)
  2. If question 1 is negative, what is the other way?
  3. If yes to question 1, what is the best way to create a VM on top of Ubuntu?

2

Answers


  1. In general, I know that Kubernetes cluster uses multiple nodes. Is it
    a good way to implement multiple nodes from Ubuntu server to VM in
    order to implement multiple nodes on a single server? (Minikube,
    MicroK8s, K3s on a single node are hard to choose in the current
    situation.)

    Yes, it’s fine to create a cluster for Development purposes again it’s not good for production use case.

    For development purposes, you can use anything Minikube, Kind.

    If you really want to create and learn how to set up Kubernetes cluster the hard way with multiple Nodes

    You can use the LXC. LXC will create a container and you can use it as Nodes in your Kubernetes cluster. Read my article on LXC : https://medium.com/@harsh.manvar111/lxc-vs-docker-lxc-101-bd49db95933a

    Kubeadm is also a good option.

    Above all suggestions are purely for Development and learning purposes.

    Login or Signup to reply.
  2. Single node clusters have gotten more and more popular and important. Mostly for use case in edge computing, industrial, automotive and the likes but nothing is stopping you from running a single node Kubernetes cluster on your server.

    Everything always has ups and downs. Single instance always means single point of failure. If something were to happen to that server and you’d have to for example replace it, all your work would be gone. Which is a bit of an issue. The same applies if your server just goes down for a power outage or just simple maintenance: your cluster will be offline and whatever you run on it will be unavailable.

    Now since you have a relatively big server available, you can run virtual machines on top and then make each of them nodes in your Kubernetes cluster. However, you need to keep in mind, that you are protecting against certain failure scenarios, if the server itself fails, you will still face the same issues mentioned before. This is the reason why mostly also virtual instances are spread out across multiple hypervisors when possible.

    If you do decide to run a single node cluster then you have some options (and some more if you include other Kubernetes distributions like OpenShift). Kind was developed primarily for testing, just like minikube so I wouldn’t bet on those. microk8s comes from Canonical and you can easily snap install it, as described in their guide. Basically sudo snap install microk8s --classic --channel=1.27 will get you a single node cluster. Which is very convenient.

    k3s will allow you to run single node clusters, but when you look into the architecture you’ll find that actually you still need to have agents registered, they’re just on the same node.

    Frankly, the question is highly opinion based, which is usually not something Stackoverflow encourages. The same goes for the second part of your questions on how to virtualize. There are countless options from simple to complex and dev to enterprise and giving a comprehensive solution that covers everything goes far beyond what a Stackoverflow answer can offer.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search