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.