A simple Todo List app using MongoDB, Express, React, and Node.js, deployed on Kubernetes with Minikube.
- MongoDB database
- Express.js REST API
- React frontend
- Kubernetes deployment configs
- Docker containers
Install these first:
- Docker
- Minikube
- kubectl
git clone https://github.com/aacc1on/mern-k8s.git
cd mern-k8sminikube start --cpus=4 --memory=4096# Use Minikube's Docker
eval $(minikube docker-env)
# Build backend
cd backend
docker build -t mern-backend:latest .
# Build frontend
cd ../frontend
docker build -t mern-frontend:latest .cd ..
kubectl apply -f k8s/mongodb-deployment.yaml
kubectl apply -f k8s/backend-deployment.yaml
kubectl apply -f k8s/frontend-deployment.yaml# Get the URL
minikube service frontend-service
# Or get IP manually
minikube ip
# Then visit http://<minikube-ip>:30080# See all pods
kubectl get pods
# See all services
kubectl get services
# Watch pods in real-time
kubectl get pods -w# Backend logs
kubectl logs -f deployment/backend
# Frontend logs
kubectl logs -f deployment/frontend
# MongoDB logs
kubectl logs -f deployment/mongodb# Delete all deployments
kubectl delete -f k8s/
# Stop Minikube
minikube stop# Open Kubernetes dashboard
minikube dashboard
# SSH into a pod
kubectl exec -it <pod-name> -- sh
# Restart a deployment
kubectl rollout restart deployment/backend
# Scale replicas
kubectl scale deployment/backend --replicas=3Pods not starting?
kubectl describe pod <pod-name>Build taking too long?
# Clear Docker cache
docker system prune -aCan't connect to backend?
# Check service is running
kubectl get svc
kubectl logs deployment/backendmern-k8s/
├── backend/ # Node.js API
├── frontend/ # React app
└── k8s/ # Kubernetes configs
- Docker containerization
- Kubernetes pods and deployments
- Services and networking
- Persistent volumes
- Scaling applications
- Container orchestration
MIT# mern-k8s