Search code examples
kubernetesibm-clouddevopsgoogle-kubernetes-enginekubectl

Determine Kubernetes cluster size


I am confused in finalize the cluster size for my QA kubernetes deployment which can be used by 150 people. Follwing are the services i need to deploy: 6 Spring boot microservices with 4pods, 1 Angular application with 4 pods

Can anyone help me in finalizing the size?


Solution

  • Managing a Kubernetes cluster is not a one-size-fits-all problem. There are many ways to rightsize your cluster, and it is vital to design your application for reliability and robustness.

    Factors which we need to consider when making a decision:

    1. High Availability

    2. Management Overhead

    3. Ease of Scheduling Container

    4. Node Auto-Scaling

    5. Ease of Maintenance

    6. Kubelet Overhead

    7. System Overhead

    8. Rightsizing Your Nodes

    You can use the following to arrive at an optimal figure:

    The number of containers per node = Square root of the closest lower perfect square to the total number of containers, provided the number of containers per node doesn’t exceed the recommended value

    Number of nodes = Total number of containers / The number of containers per node

    Overprovision factor = Number of containers per node * max resource per container / (Number of nodes — Max planned unavailable nodes)

    Node capacity = max resource required per container * the number of containers per node + overprovision factor + Kubernetes system resource requirements

    Refer to the document for more information.