Kubernetes cluster

You can deploy your app using a K8s cluster with the files provided.

Before you begin

It would be best to have a Kubernetes cluster and the Kubectl command-line tool to communicate with your cluster. Bhuma recommended running this tutorial on a cluster with at least two nodes not acting as control plane hosts. If you do not already have a cluster, you can create one by using Minikube

Start a k8s cluster using Minikube

minikube start --nodes 2 -p bhuma

Deploy Bhuma App on K8s

Environment configuration using ConfigMap

Update the app-config.yaml with the SNAPSHOT and SNAPSHOT_KEY configurations needed to deploy your app.

  • SNAPSHOT: Download this value using the Bhuma IDE
  • SNAPSHOT_KEY: Download this value using the Bhuma IDE

Redis Service

The backend uses this service to store and load values the Bhuma app needs. Therefore, this service is mandatory and has to be up before the backend app runs.

Backend Service

This service supplies the frontend request and is a proxy with the customer data sources. It provides a secure layer to pull data and transform it according to the frontend requirements.

Frontend Service

An NGINX service needs configuration from thenginx-conf.yaml to communicate the front end with the backend service.
Ultimately, the service provides the resources the customer needs to run the app in their browser.

Deploy the app

kubectl apply -f redis-conf.yaml
kubectl apply -f redis-deployment.yaml

kubectl apply -f app-conf.yaml
kubectl apply -f nginx-conf.yaml

kubectl apply -f backend-deployment.yaml
kubectl apply -f backend-service.yaml

kubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml

minikube tunnel

Wait until the deployment completes and navigates in your browser to http://localhost to use your app.

Destroy the environment

You can stop Minikube running minikube stop --all or teardown each service.

kubectl delete configmap app-conf
kubectl delete configmap nginx-conf

kubectl delete deployment frontend
kubectl delete deployment backend

kubectl delete configmap redis-conf
kubectl delete deployment redis

minikube stop -p bhuma