Sizing Kubernetes for a production-grade cluster
This topic offers best practices for sizing Kubernetes for a production-grade, high-availabliliy cluster.
- At least three master nodes
- At least three non-infrastructure worker nodes
Sizing the masters
For the optimal production scenario, we recommend at least three masters.
Maximum Number of Nodes in Cluster | Resource Requirements | AWS Equivalent |
---|---|---|
Up to 100 nodes (Kubernetes documentation) | 2 CPUs, 8G of RAM, 100G disk space | M5a.xlarge |
Sizing the workers
Sizing any type of workers is a function of what you are going to run there and the sum of the limits of all those containers.
To run all the services shipped with Component Pack, we suggest at least three workers (each running one replica of each pod) with at least 8 cores and 32G of RAM (AWS equivalent would be the m5a.2xlarge type of instance). Remember that we are sizing for the scenario when everything is running using 100% capacity, not for the scenario to simply start the services without any load.
Sizing the storage
Persistent volumes are a firm requirement for Component Pack, but even without it, nodes need disk space for caching the images and maintaining normal system operation.
For normal system operation, it is best for each master to have at least 100G of dedicated disk space, and for each worker at least 150G of dedicated disk space.
For persistent volume storage (used for ElasticSearch, Customizer, and MongoDB), at least 200G of storage is suggested.