Link Search Menu Expand Document Documentation Menu

AWS EKS (ElasticKubernetesService) Setup

Lucenia works beautifully on ECS / Fargate / AWS EKS. This guide will help you get started with Lucenia on AWS EKS.

Subscribe to Lucenia on the AWS Marketplace.

We release every Lucenia version on the AWS Marketplace, updating is as simple as upgrading to the newest container.

Prerequisite

  • An EKS Cluster
  • Storage Driver on EKS Cluster - Lucenia Helm Chart defaults to storageClass: gp2 backed by EBS CSI
  • A Lucenia License Certificate. You can learn about obtaining a trial license here.

Install Lucenia BYOL (Bring your own License) on EKS

Setup

Update your KubeConfig to point to your EKS cluster.

aws eks --region [EKS-REGION] update-kubeconfig --name [EKS-CLUSTER-NAME]

> Added new context arn:aws:eks:us-east-1:[YOUR-ACCOUNT-ID]:cluster/[EKS-CLUSTER-NAME] to /Users/you/.kube/config

Test you Cluster Connectivity

kubectl get svc

> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AG
> kubernetes ClusterIP 10.100.0.1 443/TCP 3h34m

Run these few setup commands:

  • Set a NS environment variable with the value of the namespace to deploy the Lucenia Cluster to:
export NS=<lucenia_namespace>
  • Create the namespace:
kubectl create namespace $NS
  • Save the license certificate in a file named license.crt

  • Create a secret containing the Lucenia License:

kubectl --namespace $NS create secret generic license-cert --from-file=license.crt

Install Lucenia with Helm

export HELM_EXPERIMENTAL_OCI=1

aws ecr get-login-password \
    --region us-east-1 | helm registry login \
    --username AWS \
    --password-stdin 709825985650.dkr.ecr.us-east-1.amazonaws.com

helm pull oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/lucenia/lucenia-byol-chart --version=0.1.16
tar -xvf lucenia-byol-chart-0.1.16.tgz

export LUCENIA_INITIAL_ADMIN_PASSWORD=$(openssl rand -base64 32)
helm install lucenia \
  --namespace $NS ./lucenia-byol-chart \
  --set 'lucenia.extraEnvs[0].name=LUCENIA_INITIAL_ADMIN_PASSWORD' \
  --set 'lucenia.extraEnvs[0].value='${LUCENIA_INITIAL_ADMIN_PASSWORD}

Access Lucenia

On a successful deployment, Lucenia will start on port 9200. You can access it using the following commands:

Get the application URL by running these commands:

  export POD_NAME=$(kubectl get pods --namespace $NS -l "app.kubernetes.io/name=lucenia,app.kubernetes.io/instance=lucenia" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:9200 to use your application"
  kubectl --namespace $NS port-forward $POD_NAME 9200:9200

Now issue this command to see cluster health:

curl -XGET https://localhost:9200/_cluster/health?pretty -ku admin:$LUCENIA_INITIAL_ADMIN_PASSWORD

The output should be similar to:

{
  "cluster_name" : "lucenia-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "discovered_master" : true,
  "discovered_cluster_manager" : true,
  "active_primary_shards" : 2,
  "active_shards" : 5,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

You can now visit our docs on how to ingest data to learn more about Lucenia.

Get Help!

If you have any questions, please reach out to us at support@lucenia.io or join our Slack Community.

350 characters left

Have a question? .