Skip to main content

Configure High Availability and Scalability

The high availability and scalability features of Kubernetes ensure continuous access to your applications. This page shows how to set up high availability and scalability for Appsmith.

info

High Availability is only available on Kubernetes self-hosted Business Edition instances of Appsmith.

Prerequisites

  1. A self-hosted Kubernetes Business Edition Appsmith installation. If not installed yet, see the Kubernetes installation guide for installing Appsmith.
  2. A running Kubernetes cluster with more than one node to achieve high availability.
  3. At least 2 GB of free storage space for backup and update tasks.

Before you begin

  1. Create a backup of the Appsmith instance, See Backup instance guide.

  2. Install a metrics server that provides vital metrics to the Horizontal Pod Autoscaler (HPA) to scale the pods with:

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
  3. Configure your Kubernetes cluster with Amazon Elastic File System (EFS) and set up the Persistent Volume Claim (PVC),follow these steps:

    a. To create an IAM role to interact with the Amazon Elastic File System (EFS), see Creating an IAM role guide.

    b. Amazon EFS Container Storage Interface (CSI) driver is a plugin for Kubernetes that allows you to mount Amazon Elastic File System (EFS) on your Kubernetes pods. To install the Amazon EFS CSI driver, see Installing the Amazon EFS CSI driver guide.

    c. To create the EFS file system, see Create an Amazon EFS file system for Amazon EKS guide.

    d. To configured the Persistent Volume Claim (PVC) for the Kubernetes cluster, follow these steps:

    • Create a New Persistent Volume Claim - Create a new PVC and update the values.yaml file as shown below:

          existingClaim:
      enabled: false
      name:
      claimName:
      efs:
      enabled: true
      driver: efs.csi.aws.com
      volumeHandle: FILE_SYSTEM_ID
    • Reuse an Existing Persistent Volume Claim - If you already have a PVC that you want to reuse for EFS or if you have multiple deployments/pods needing access to the same EFS volume, update the values.yaml file as shown below:

        existingClaim:
      enabled: true
      name: efsappsmith
      claimName: efsappsmith
      efs:
      enabled: true
      driver: efs.csi.aws.com
      volumeHandle: FILE_SYSTEM_ID

Configure instance

  1. Go to the Appsmith installation directory, open values.yaml file, and turn on autoscaling by changing the enabled attribute to true for autoscaling attribute.

    autoscaling:
    enabled: true
    minReplicas: 2
    maxReplicas: 2
  2. Update the Appsmith installation with high availability configuration with:

    helm upgrade -i appsmith-ee appsmith-ee/appsmith -n appsmith-ee -f values.yaml

    If the values.yaml file is not in the deployment directory specify the file location in the -f attribute.

  3. Verify the pod status with:

    kubectl get pods -n appsmith-ee

    The above command displays the status of the pods. Once the process is completed, the pod status is shown as RUNNING.

Troubleshooting

If you see errors, you can roll back to a previous version to fix the issue. For more information, see the Restore instance section.

If you continue to face issues, contact the support team using the chat widget at the bottom right of this page.

Further reading