Kubernetes (k8s)
This page provides steps to install Appsmith on a Kubernetes cluster using the Helm package manager.
Prerequisites
- At least 15 GB of free storage space.
- 4 GB of RAM.
Before you begin
Install Helm package manager on your local machine. See the official Helm documentation for your operating system.
Install and configure
kubectl
to interact with your Kubernetes cluster. Follow the below guides available on the official Kubernetes documentation for instructions on how to installkubectl
on your specific operating system:Setup a Kubernetes cluster. Follow these steps using a terminal to set up the cluster on AWS EKS:
infoYou are free to choose your preferred platform for hosting the Kubernetes cluster. Make sure you have configured Kubeconfig and created a default storage class before proceeding with the Appsmith installation. If you face any issues, contact the support team using the chat widget at the bottom right of this page.
a. Verify if you have access to AWS CLI with:
aws sts get-caller-identity
The above command provides information related to your account and ARN, indicating that you can connect and access your Amazon account using a terminal.
b. Create KubeConfig with:
aws eks update-kubeconfig --region ap-south-1 --name CLUSTER_NAME --profile <PROFILE_NAME>
In the above command, add the profile name that has access to the EKS cluster to the
--profile
parameter.c. Test your Kubernetes configuration with:
kubectl cluster-info
The above command provides a summary of the current cluster configuration, including the Kubernetes master and other cluster information.
d. Define a storage class.
For Kubernetes version earlier than
1.23
, define the storage class with:kubectl apply -f - <<EOF
apiVersion: storage.k8s.io/v1
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: gp2
provisioner: kubernetes.io/aws-ebs
EOFFor Kubernetes version
1.23
and later, define the storage class with:- Create an IAM role by following the Amazon official documentation for Creating the Amazon EBS CSI driver IAM role.
- Add the Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) driver chart repository with:
helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
- Update the Amazon EBS CSI driver repository with:
helm repo update
- Install Amazon EBS CSI driver with:
helm upgrade --install aws-ebs-csi-driver --namespace kube-system aws-ebs-csi-driver aws-ebs-csi-driver
- Verify the Amazon EBS CSI driver installation with:
kubectl get pods -n kube-system -l app.kubernetes.io/name=aws-ebs-csi-driver
Install Appsmith
. Then, navigate to this folder using the cd
command and follow the steps below:
- Community Edition
- Business Edition
Create a folder named
appsmith
on your machine for deployment and data storage. Then, navigate to this folder using thecd
command.Add the Appsmith chart repository with:
helm repo add appsmith https://helm.appsmith.com
Load the Appsmith chart repository with:
helm repo update
Generate the
values.yaml
file with:helm show values appsmith/appsmith > values.yaml
Deploy Appsmith with:
helm install appsmith appsmith/appsmith -n appsmith --create-namespace -f values.yaml
Get pod name with:
kubectl get pods -n appsmith
The above command displays the status of the pods. Proceed to the next step once the pod status is shown as RUNNING.
To verify the installation locally, use the below command to forward the 8080 port to 80:
kubectl --namespace appsmith port-forward appsmith-0 8080:80
In above command,
appsmith-0
is the Appsmith pod name.Open http://localhost:8080 and wait for the server to come up. This can take up to 5 minutes. Once the server is up and running, you can access Appsmith at http://localhost:8080. To expose Appsmith installation on internet, see the Expose K8s to Internet guide.
To upgrade from Community Edition to Business Edition, follow the instructions available at Upgrade to Business Edition for Kubernetes.
Sign up on customer.appsmith.com and generate a trial license key.
Create a folder named
appsmith
on your machine for deployment and data storage. Then, navigate to this folder using thecd
command.Add the Appsmith chart repository with:
helm repo add appsmith-ee https://helm-ee.appsmith.com
Load the Appsmith chart repository with:
helm repo update
Generate the
values.yaml
file with:helm show values appsmith-ee/appsmith > values.yaml
Run the below command to deploy Appsmith:
helm install appsmith-ee appsmith-ee/appsmith -n appsmith-ee --create-namespace -f values.yaml
Get pod name with:
kubectl get pods -n appsmith-ee
The above command displays the status of the pods. Proceed to the next step once the pod status is shown as RUNNING.
To access and verify the installation locally, use the below command that forwards the port 8080 to port 80:
kubectl --namespace appsmith-ee port-forward appsmith-ee-0 8080:80
In above command,
appsmith-ee-0
is the Appsmith pod name.Open http://localhost:8080 and wait for the server to come up. This can take up to 5 minutes. Once the server is up and running, you can access Appsmith at http://localhost:8080.
Log into your Appsmith account, and enter your license key to activate the instance.
For high availability and scalability configuration, see the Configure High Availability and Scalability guide. To expose Appsmith installation on internet, see the Expose K8s to Internet guide.
Troubleshooting
If you face issues, contact the support team using the chat widget at the bottom right of this page.