In this demo project we are using React client, Node.js backend, PostgreSQL and Nginx for application and Deployment using Kubernetes.
It is a basic application to get inputs as numbers from client and retrieve saved numbers from Database.
#Lets get started with deployment.
In this demo we are using 3 containers
git clone https://github.com/boobalana/pro.git pro
cd pro/apps
cd client
docker build -t <imagename:version> .
docker push <imagename:version> <repo/imagename:version>
cd ../server
docker build -t <imagename:version> .
docker push <imagename:version> <repo/imagename:version>
i will be using following images which are created using above steps.
All Kubernetes Manifest files are under kubernetes folder.
client-cluster-ip-service.yml
database-persistent-volume-claim.yml
postgres-cluster-ip-service.yml
server-cluster-ip-service.yml
client-deployment.yml
db-secret.yaml
postgres-deployment.yml
server-deployment.yml
Here we are going to use kustomize to deploy Application in 2 Environment (Dev and Prod).
Under infra folder we have kustomize templates to deploy Application in multiple Environments.
Base folder holds all the kubernetes manifest and kustomize file overlays will be used to have custom configuration based on Environment. Example here are running 1 replica for dev and 2 replica for Prod
Each Environments can deployed in its own namespace (dev/prod). Here we are using 2 namespace i.e Dev & Prod
cd infra
kubectl create -k overlays/dev
kubectl get all --namespace=dev
kubectl create -k overlays/prod
kubectl get all --namespace=prod
Ensure all resources are in running state.
kubectl get all --namespace=dev
kubectl get all --namespace=prod
Accessing with URL.
minikube svc <Client SVC> --url -n <namespace>
Access with the above URL in Browser.
kubectl delete -k overlays/dev
kubectl delete -k overlays/prod