We provide an installation script that will help you configure Appsmith & deploy your app on a Kubernetes cluster.
Ensure kubectl
is installed and configured to connect to your cluster
Install kubeclt: kubernetes.io/vi/docs/tasks/tools/install-kubectl/​
Minikube: Setup Kubectl​
Google Cloud Kubernetes: [Configuring cluster access for kubectl
](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl)
Aws EKS: Create a kubeconfig for Amazon EKS​
Microk8s: Working with kubectl​
Kubernetes NGINX Ingress Controller must be enable on your cluster by default. Please make sure that you install the right version for your cluster
Google Cloud Kubernetes: Ingress with NGINX controller on Google Kubernetes Engine​
AWS EKS: Install NGINX Controller for AWS EKS​
Microk8s: Add on: Ingress​
Script tested on Minikube with Kubernetes v1.18.0
Fetch the install.k8s.sh script on the system you want to deploy appsmith
# Downloads install.shcurl -O https://raw.githubusercontent.com/appsmithorg/appsmith/master/deploy/k8s/install.k8s.sh
Make the script executable
chmod +x install.k8s.sh
Run the script.
./install.k8s.sh
Check if all the pods are running correctly.
kubectl get pods​#Output should look like thisNAME READY STATUS RESTARTS AGEappsmith-editor-cbf5956c4-2zxlz 1/1 Running 0 4m26sappsmith-internal-server-d5d555dbc-qddmb. 1/1 Running 2 4m22simago-1602817200-g28b2 1/1 Running 0 4m39smongo-statefulset-0 1/1 Running 0 4m13sredis-statefulset-0 1/1 Running 0 4m00s
After you successfully run the script, all the configuration files have been downloaded and & stored into <Installation Path>
. If you want to update your app settings (ex: database host). Go to the<Installation Path>/config-template
, update the corresponding value in the configmap file, then restart the pods.
The below steps will help you update the database hostname of your application:
Open file appsmith-configmap.yaml
in <Installation Path>/config-template
folder
Update the value of the variable APPSMITH_MONGODB_URI
to your database hostname
Run commands:
kubectl apply -f appsmith-configmap.yamlkubectl scale deployment appsmith-internal-server --replicas=0kubectl scale deployment appsmith-internal-server --replicas=1
You can access the running application on the Ingress Endpoint if you did not choose to provide a custom domain for your application.
kubectl get ingressNAME CLASS HOSTS ADDRESS PORTS AGEappsmith-ingress <none> * XXX.XXX.XX.XXX 80 2m
You may need to wait 2-3 minutes before accessing the application to allow the server to come up
You can debug common errors faced during deployment at the link below
​