Setup in Amazon Kubernetes Services (EKS)
Amazon Kubernetes Service (EKS)
The following steps can be followed to set up the LumenVox software within Amazon.
Create EKS Cluster
- Provide a cluster name and networking information (e.g. publicly available) to be set up
- Version 1.30 is currently recommended is currently recommended – see latest minimum requirements in GitHub - lumenvox/helm-charts: LumenVox Kubernetes Helm Charts
EKS Cluster Networking
- Specify VPC, select subnets and add the relevant security groups (we used the default VPC security group)
- VPC to be created beforehand if it doesn’t exist.
Select Cluster Endpoint Access
We recommend the following settings:
Networking add-ons
We recommend the following settings:
Configure logging
We recommend the following settings:
.
- Review and click on create
- Cluster creation can take several minutes to complete. Monitor for any errors.
Create node group and create node
- Click on Compute and then Add Node Group
Configure Node Group
The following default values are recommended but should be changed as per the client’s individual requirements:
Set compute and scaling configuration
The following default values are recommended however the client should select the operating system that best suits their needs.
NOTE: We recommend instance type be set to: m6a.2xlarge
The following can be scaled as be client requirements
Specify Networking
- Review and create.
- Cluster creation can take several minutes to complete. Monitor for any errors.
Create EFS Instance (elastic file storage)
Set up as per client requirements, required as the persistent storage device
Network Access
Ensure you select the same VPC as the cluster, also select the default security group as well as the “eks-cluster-sg-***” group created by the cluster
- Review and create
- Create access point
- Click on “Access points” and click on “Create access point” and accept defaults. Then click on attach
Install kubectl
Create access keys
To create access keys for an IAM user
- Sign into the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam/.
- In the navigation pane, choose Users.
- Choose the name of the user whose access keys you want to create, and then choose the Security credentials tab.
- In the Access keys section, choose Create access key.
- To view the new access key pair, choose Show. You will not have access to the secret access key again after this dialog box closes. Your credentials will look something like this:
- Access key ID: AKIAIOSFODNN7EXAMPLE
- Secret access key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
- To download the key pair, choose Download .csv file. Store the keys in a secure location. You will not have access to the secret access key again after this dialog box closes.Keep the keys confidential in order to protect your AWS account and never email them. Do not share them outside your organization, even if an inquiry appears to come from AWS or Amazon.com. No one who legitimately represents Amazon will ever ask you for your secret key.
- After you download the .csv file, choose Close. When you create an access key, the key pair is active by default, and you can use the pair right away.
Install AWS CLI
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Check Version
1. aws --version |
Check current identity
1. aws sts get-caller-identity |
If you need to modify the identity use the commands below:
1. aws configure 2. AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE 3. AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 4. Default region name [None]: us-east-1 5. Default output format [None]: json |
Update kubeconfig
1. aws eks --region us-east-1 update-kubeconfig --name cloud-speech-1 |
Install Helm
1. curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 2. chmod 700 get_helm.sh 3. ./get_helm.sh |
Install Linkerd CLI
We only support up to Linkerd edge-24.5.5.
1. curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh 2. Add the Linkerd CLI to your path 3. export PATH=$PATH:$HOME/.linkerd2/bin |
Install Linkerd
1. Linkerd check –pre 2. Linkerd install –crds | kubectl apply –f - 3. linkerd install --set proxyInit.runAsRoot=true | kubectl apply -f - 4. linkerd check |
Install Jaeger
1. linkerd jaeger install | kubectl apply -f - |
Install Linkerd viz Dashboard
1. linkerd viz install | kubectl apply -f – |
Should be ever need to uninstall Linkerd for troubleshooting purposes (e.g. deleting a cluster or you have issues with the Linkerd side cars you can use the following commands:
Uninstall Linkerd
1. linkerd viz uninstall | kubectl delete -f - 2. linkerd jaeger uninstall | kubectl delete -f - 3. linkerd uninstall | kubectl delete -f - |
Install nginx Ingress
1. helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx 2. helm repo update 3. kubectl create ns ingress-nginx 4. helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx -n ingress-nginx --create-namespace --set controller.hostNetwork=true --set controller.allowSnippetAnnotations=true |
Create LumenVox Namespace
1. kubectl create namespace lumenvox |
Change NameSpace
1. kubectl config set-context --current --namespace=lumenvox |
Setup TLS for Ingress
1. openssl genrsa -out server.key 2048 2. openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650 -addext "subjectAltName = DNS:lumenvox-api.testmachine.com, DNS:biometric-api.testmachine.com, DNS:management-api.testmachine.com, DNS:reporting-api.testmachine.com, DNS:admin-portal.testmachine.com, DNS:deployment-portal.testmachine.com" 3. kubectl create secret tls speech-tls-secret --key server.key --cert server.crt |
Apply Secrets File
1. kubectl apply -f lumenvox-secrets.yaml |
Configure Helm
1. helm repo add lumenvox https://lumenvox.github.io/helm-charts 2. helm repo update |
Deploy Public Chart (Internal Resources)
1. helm install lumenvox lumenvox/lumenvox -f aws-speech-values-internal-resources.yaml -n lumenvox |
See Setting up a deployment for final steps to for complete installation by setting up a deployment
Access the full installation guide here https://public.files.capacity.com/8e0415bb-7078-4be5-9629-9002e4a1f6ec/d68f0d62-0b36-49c7-9cc3-58acd919d994?FU=1729590624