High Availability

To enable autoscaling for Temporal services, you need to update the values/temporal-values.yaml configuration. This step-by-step guide shows how to configure autoscaling parameters for various Temporal components, including frontend, history, matching, and worker.

  1. Update the Autoscaling Configuration in temporal-values.yaml for Each Temporal Service

    1. Frontend Configuration:

      • Modify the replicaCount, autoscaling, and resources sections as follows:

        frontend:
          replicaCount: 1 # recommended minimum config 2
          autoscaling:
            enabled: true  # Set to 'true' to enable autoscaling(by default false)
            minReplicas: "1"
            maxReplicas: "5"  # Adjust this based on your requirements
            targetCPU: "75"  # Target CPU utilization percentage
            targetMemory: "75"  # Target Memory utilization percentage
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
      • Setting autoscaling.enabled to true activates autoscaling for the frontend service. Adjust minReplicas and maxReplicas according to your expected load and resource availability.

    2. History Configuration:

      • Update the history service settings:

        history:
          replicaCount: 1 # Should be set to value of numHistoryShards / 512
          autoscaling:
            enabled: false  #  autoscaling for history not recommended
          resources:
            requests:
              cpu: 500m # recommended 1000m
              memory: 1048Mi # recommended 2048
        
      • This configuration ensures the history service can scale within the specified limits based on CPU and memory usage.

    3. Matching Configuration:

      • Configure the matching service:

        matching:
          replicaCount: 1 # Recommended min config 2
          autoscaling:
            enabled: true  # Enable autoscaling for matching
            minReplicas: "1" # Same as replicaCount
            maxReplicas: "5"  # Adjust this based on your requirements
            targetCPU: "75"  # Target CPU utilization percentage
            targetMemory: "75"  # Target Memory utilization percentage
           resources:
        	   requests:
        			 cpu: 250m
        			 memory: 512Mi
        
      • Autoscaling is controlled by the resource thresholds specified. You can adjust these thresholds based on the demand expected on the matching service.

    4. Worker Configuration:

      • Configure the worker service:

          worker:
            replicaCount: 1 # Recommended min config 2
            autoscaling:
              enabled: false # Enable autoscaling for worker
              minReplicas: "1" # Same as replicaCount
              maxReplicas: "1"  # Adjust this based on your requirements
              targetCPU: "75" # Target CPU utilization percentage
              targetMemory: "75" # Target Memory utilization percentage
            resources:
        	    requests:
        		    cpu: 200m
        			  memory: 512Mi
        
      • Autoscaling is controlled by the resource thresholds specified. You can adjust these thresholds based on the demand expected on the worker service.

  2. Update the Autoscaling Configuration in nected-values.yaml for Each Nected Service like vidhaan-executer and vidhaan-router.

    1. Vidhaan Executer

      1. Configure the vidhaan-executer service:

        # vidhaan-executer chart to be updated
        vidhaan-executer:
          enabled: true
          replicaCount: 1 # Recommended min config 2
          .
          .
          .
        
          resources:
            requests:
              cpu: "250m"
              memory: "512Mi"
            limits:
              cpu: "500m"
              memory: "1024Mi"
        
          autoscaling:
            enabled: false # Enable autoscaling for executer
            minReplicas: 1
            maxReplicas: 1
            targetCPUUtilizationPercentage: 80
            targetMemoryUtilizationPercentage: 80
        
    2. Vidhaan Router

      1. Configure the vidhaan-router service:

        # vidhaan-router chart to be updated
        vidhaan-router:
          enabled: true
          replicaCount: 1 # Recommended min config 2
          .
          .
          .
        
          resources:
            requests:
              cpu: "250m"
              memory: "512Mi"
            limits:
              cpu: "250m"
              memory: "1024Mi"
        
          autoscaling:
            enabled: false # Enable autoscaling
            minReplicas: 1
            maxReplicas: 1
            targetCPUUtilizationPercentage: 80
            targetMemoryUtilizationPercentage: 80

Autoscaling is controlled by the resource thresholds specified. You can adjust these thresholds based on the demand expected on the matching service.

Last updated