Skip to content

Latest commit

 

History

History
151 lines (115 loc) · 6.81 KB

File metadata and controls

151 lines (115 loc) · 6.81 KB
description toc_max_heading_level
Deploy Appsmith on a Kubernetes cluster
2

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

Kubernetes (k8s)

This page provides steps to install Appsmith on a Kubernetes cluster using the Helm package manager.

System requirements

  • At least 15 GB of free storage space.
  • 4 GB of RAM.

Prerequisites

  1. Install Helm package manager on your local machine. See the official Helm documentation for your operating system.
  2. 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 install kubectl on your specific operating system:
  3. Set up a Kubernetes cluster. Follow these steps using a terminal to set up the cluster on AWS EKS:

:::info You 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:
  
```bash
  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: 

```bash
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:

```bash
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:

```bash
kubectl apply -f - <<EOF
  apiVersion: storage.k8s.io/v1
  kind: StorageClass
  apiVersion: storage.k8s.io/v1
  metadata:
    name: gp2
  provisioner: kubernetes.io/aws-ebs
  EOF
```
* For Kubernetes version `1.23` and later, define the storage class with:
  1. Create an IAM role by following the Amazon official documentation for [Creating the Amazon EBS CSI driver IAM role](https://docs.aws.amazon.com/eks/latest/userguide/csi-iam-role.html).
  2. Add the Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) driver chart repository with:
    ```bash
    helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
    ```
  3. Update the Amazon EBS CSI driver repository with:
    ```bash
    helm repo update
    ```
  4. Install Amazon EBS CSI driver with:
    ```bash
    helm upgrade --install aws-ebs-csi-driver --namespace kube-system aws-ebs-csi-driver aws-ebs-csi-driver 
    ```  
  5. 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

Follow these steps to install Appsmith:

  1. Create a folder named appsmith on your machine for deployment and data storage. Then, navigate to this folder using the cd command.

  1. Add the Appsmith chart repository with:
helm repo add appsmith-ee https://helm-ee.appsmith.com
  1. Load the Appsmith chart repository with:
helm repo update
  1. Generate the values.yaml file with:
helm show values appsmith-ee/appsmith  > values.yaml
  1. Run the below command to deploy Appsmith:
helm install appsmith-ee appsmith-ee/appsmith -n appsmith-ee --create-namespace -f values.yaml
  1. 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.

  1. 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 the above command, appsmith-ee-0 is the Appsmith pod name.

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

  2. Fill in your details to create an administrator account.

  3. Once you've created an account, you can either start with the free plan or activate your instance with a license key. If you want to generate a license key, sign up on customer.appsmith.com to create one, and then proceed to activate your instance using the newly generated license key.

For high availability and scalability configuration, see the Configure High Availability and Scalability guide. To expose Appsmith installation on the internet, see the Expose K8s to Internet guide.

Install Appsmith Community

To install the Appsmith open source edition (Appsmith Community):

  1. Use the open source helm chart by running the below command which adds the Appsmith chart repository:
helm repo add appsmith https://helm.appsmith.com
  1. Replace appsmith-ee with appsmith in the commands on this page.

Troubleshooting

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

Further reading