Skip to main content

High Availability and Scalability (k8s)

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.

Prerequisites

  1. A self-hosted Appsmith Commercial Edition installation on a Kubernetes cluster. 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
  1. 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
  1. 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.

  1. 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