Kubernetes installation steps
The following information provides high-level steps to be followed to install the LumenVox software within a Kubernetes environment. Appendix 1 (Google GKE) and Appendix 2 (Amazon EKS) provide further information and steps for these two cloud providers. Further providers may be added in due course. LumenVox offers a “Quick start” option for on-premises installations making use of Kubeadm which automates most of the steps to be followed below. See KubeADM for further steps.
LumenVox recommends that clients set up a Kubernetes cluster environment that is not reliant on external services for MongoDB, PostgreSQL, Rabit and MongoDB and the client can soon begin testing using the various APIs. Once the setup is successful then the Kubernetes environment could be set up using the external services. Note that when setting up the connection strings to these external services, the following characters are not supported within a password: [ ] { } ( ) , ; ? * = ! @ |^
LumenVox is able to supply the values files used for the Helm commands. Examples of these can be found here: GitHub - lumenvox/helm-charts: LumenVox Kubernetes Helm Charts. We would just require the IP address details for the persistent storage device along with the usernames and IP addresses for the various prerequisite components like Redis and MongoDB. The client needs to populate the secrets file template with their base64 encoded passwords. The template can be obtained from Appendix 6.
Steps
- Create a Kubernetes cluster
- This will host your Kubernetes nodes
- IP created can be noted for association with DNS & API calls
- Cluster name and networking information (e.g. publicly available) to be set up
- Version 1.30 is currently recommended – see latest minimum requirements in GitHub - lumenvox/helm-charts: LumenVox Kubernetes Helm Charts
- Create the node pools
- This will host your various pods
- Numbers to be created will depend on call volumes and products used
- Configure the nodes
- This should include specifying the operating system
- Set up the node security
- Set up node networking
- Install KubeCTL or equivalent version e.g., Google CLI which installs KubeCTL as part of the installation package. This used to connect to the Kubernetes cluster from your local machine.
- Connect to the cluster and configure KubeCTL in order for KubeCTL to communicate to the new cluster and submit Kubernetes commands.
- Install Linkerd
- This is a service mesh that LumenVox recommends for effective interaction management & load balancing between the various pods.
- Install Jaeger
- This is a plugin for Linkerd. It is a monitoring tool that keeps track of latency, communication success between pods and bottlenecks. It can monitor how much time is spent for transactions within the various pods.
- Install Linkerd Dashboard
- This is a visual dashboard used to monitor and display latency and uses Jaeger behind the scenes. It also works as a health check for the service mesh.
- Install Helm
- This will be needed to run the various helm charts
- Use Helm to install Nginx Ingress .
- NGINX is a load balance into the Kubernetes cluster and works as a reverse proxy.
- Create namespace and change to lumenvox
- A namespace is required to install the pods into. A namespace can have multiple tenants (deployment IDs). At this stage LumenVox does not support multiple namespaces.
- Commands are run to activate and make lumenvox namespace the default
- Set up TLS for ingress
- Used to set up TLS and apply a self-signed certificate or client alternative
- Apply secrets file
- The secrets file must be populated with the various component passwords stored as a base64 sting. The following example is of the secrets.yaml file
- Run installation of the helm cart
- The various helm charts required can be located at https://github.com/lumenvox/helm-charts
- The resources file can be used to override any default settings
- Sample speech python scripts are available for clients to easily test out the LumenVox API and verify that everything is installed correctly. This can be found here: LumenVox · GitHub
- The various helm charts required can be located at https://github.com/lumenvox/helm-charts
Troubleshooting
Should your containers not fully deploy then the following steps can be taken to troubleshoot the problem:
- Are all the pods running
- Are there any errors in the pods not running
- What are the errors?
- Check deployment pod status and log files. This is the most important pod to getting other pods up and running
Potential Installation pain-points
The following list provides some examples of potential areas that could affect your installation for troubleshooting purposes:
- Network between components e.g. between Kubernetes and Mongo DB, Redis, RabbitMQ, Postgres & the persistent volume.
- Using different clusters and the communication with them
- The way clusters are set up in different host providers can differ e.g. between Alibaba, Azure, Google, Amazon...
- Connectivity and configuration to MongoDB, PostgreSQL, RabbitMQ, Redis and the persistent storage can differ per client installation. The version or type of these five components can also differ
- Passwords for various components contains unsupported characters
- TLS connectivity
- Connectivity to licensing service & LumenVox resources
Access the full installation guide here
https://public.files.capacity.com/8e0415bb-7078-4be5-9629-9002e4a1f6ec/d68f0d62-0b36-49c7-9cc3-58acd919d994?FU=1729590624