Skip to content

tohidhanfi20/MERN-Webapp-Deployed-on-the-Kubernetes-Cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MERN Webapp Deployed on the Kubernetes Cluster

Tools Used

🐳 Docker: Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.The software that hosts the containers is called Docker Engine

GitHub :GitHub is a platform and cloud-based service for software development and version control using Git, allowing developers to store and manage their code. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration

☸️ Kubernetes (K8's) : Kubernetes, often abbreviated as K8s, is an open-source container orchestration system for automating software deployment, scaling, and management It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation

Visuals studio : Visual Studio Code is a source-code editor that can be used with a variety of programming languages, including C, C#, C++, Go, Java, JavaScript, Node.js, Python, etc. It is based on the Electron framework.Which is used to develop Node.js web applications that run on the Blink layout engine. Visual Studio Code employs the same editor component used in Azure DevOps

Mongo Express:Mongo Express is a web-based MongoDB admin interface that allows you to manage MongoDB databases interactively.It is written in Node.js, Express.js, and Bootstrap.Mongo Express can be deployed on the Internet, but it requires authentication to prevent unauthorized access

MiniKube :Minikube is a tool that sets up a Kubernetes environment on a local PC or laptop. It creates a VM on your local machine and deploys a simple cluster containing only one node.Minikube is a lightweight Kubernetes implementation that is ideal for testing and development purposes. It is available for Linux, macOS, and Windows systems

Kubernetes (K8's) : Kubernetes, often abbreviated as K8s, is an open-source container orchestration system for automating software deployment, scaling, and management It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation

Prerequisites Steps

  1. Install Kubernetes (K8's)

     Enter below commands to install kubernetes to your local machine.

    For windows - https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/

    For Mac-os - https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/

  1. Install minikube

  Enter below commands to install Minikube to your local machine.

     Link for Every operationg system - https://minikube.sigs.k8s.io/docs/start/

  1. Install DockerDesktop

   Windows - Install Docker Desktop on Windows | Docker Docs

   Mac - Install Docker Desktop on Mac | Docker Docs

 4. Sign up to Dockerhub

      https://hub.docker.com/signup/

  1. Refer sample Deployement file from Official Kubernete's documentation

     https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

  1. Refer sample ConfigMap file from Official Kubernete's documentation

     https://kubernetes.io/docs/concepts/configuration/configmap/

 7. Refer sample Secrets file from Official Kubernete's documentation

      https://kubernetes.io/docs/concepts/configuration/secret/

Interactive Steps

Step 1 - Download code from the repository in your local machine

Step 2 - Open VS Code and open folder having your all files

Step 3 - Open Terminal in VS Code

Step 4 - Start Minikube using minikube start

Step 5 - Check for the pods whether is not active by following command

    kubectl get pods

Step 6 - Apply secrets file in the terminal by following command

    kubectl apply -f secret.yaml

Step 7 - Apply Config Map file in the terminal by following command

    kubectl apply -f mongo-confiq.yaml

Step 8 - Apply Mongo app file in the terminal by following command

    kubectl apply -f mongo-app.yaml

Step 9 - Apply Mongo webapp file in the terminal by following command

    kubectl apply -f web-app.yaml

Step 10 - To see details of the node which you created in the terminal by following command

    kubectl get node -o wide

Step 11 - You have to expose your service to external world using this command in terminal

    minikube service webapp-service

    

Step 12 - Now you can see a login pop up on the screen

    Use This Credentials

     Username - admin

      assword - pass

        As this was mentioned in the ofiicial documentation of the mongo-express in dockerhub

Step 13 - Now we can see our application is up and runing in the kubernetes Cluster