Replica typically refers to a set of identical Pods running concurrently in a Kubernetes cluster. Kubernetes uses the concept of Replicas to manage the availability and scalability of applications.
Pods: Pods are the smallest deployable unit in Kubernetes, representing single instances of containerized applications.
Replication Controller (deprecated) / Replica Set / Deployment: These are Kubernetes controllers responsible for managing multiple identical pods. They ensure that a specified number of Pod replicas are running at any given time. However, Deployment is the recommended way for managing replicas in modern Kubernetes. For Bold Reports®, a Deployment might be used to manage the replicas of Pods serving the reporting engine and related services.
Replicas: A Replica is simply an instance of a Pod within a Replica Set or Deployment. When you define a Replica Set or Deployment for Bold Reports®, you specify the desired number of replicas. Kubernetes ensures that this number of Pods are running and healthy based on the configuration you provide. Replicas are crucial for ensuring high availability and scalability.
Introduction to Multiple Replica Sets: Multiple replica sets refer to the scenario in a Kubernetes cluster where there are more than one instance of a Replica Set managing sets of identical Pods.
Functionality and Flexibility: Each Replica set manages its own set of Pods, which may serve different functions or components of the Bold Reports® application. This modular approach allows for better management and scalability of specific components.
Enhanced Management Flexibility: By using multiple replica sets, Bold Reports® gains flexibility and granularity in managing its application components. This allows for independent scaling and management of different parts of the application.
Deployment Strategies: Multiple replica sets enable sophisticated deployment strategies like rolling updates for Bold Reports®. This enhances scalability, fault tolerance, and deployment strategies specific to the needs of the application.
minReplicas parameter defines the minimum number of replicas (instances) of a pod or deployment that should be maintained.BoldReports is configured with a default
minReplicassetting of 1. While users have the option to adjust the minimum value, it must always remain at least 1.
maxReplicas parameter specifies the maximum number of replicas (instances) of a pod or deployment that can be scaled up to.BoldReports is initially configured with a
maxReplicassetting of 20, providing users with the flexibility to customize this value according to workload demands, with an upper limit of 100.
minReplicas and maxReplicas, except for the jobs and designer HPAs where both minReplicas and maxReplicas are fixed to 1.minReplicas and maxReplicas values: before deployment and after deployment.Before initiating the deployment process for Bold Reports®, you have the option to modify the minReplicas and maxReplicas configurations in the hpa.yaml file, which was downloaded from the GitHub repository, to align with your scalability goals.
After you have edited, save the changes.

HPAs within the hpa.yaml file using the following command:kubectl get hpa -A
kubectl edit hpa hpa-name -n namespace
e.g kubectl edit hpa reports-viewer-hpa -n bold-servicesOnce the command succeeds, the file will be opened. Change the values based on your workload, save the changes, and close the file. You will receive a message similar to the one shown in the image below.


You can verify the changed replicas by listing the HPAs using the same command:
kubectl get hpa -A