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
Updated about 1 year ago