This repository contains Kubernetes manifests to deploy Dumbpad on a KIND cluster with persistent storage and service exposure.
.
├── deployment.yml # Deployment manifest (3 replicas of Dumbpad app)
├── persistentvolume.yml # PersistentVolume (PV) for local storage
├── persitancevolumeclam.yml # PersistentVolumeClaim (PVC) bound to PV
└── service.yml # Service to expose Dumbpad pods
-
Clone the repository
git clone https://github.com/singhchandan27/Kubernetes.git cd Kubernetes/dumbpad
-
Create namespace (Create NS as per your need)
kubectl create namespace nginx
-
Apply PersistentVolume (PV)
kubectl apply -f persistentvolume.yml
-
Apply PersistentVolumeClaim (PVC)
kubectl apply -f persitancevolumeclam.yml
-
Deploy Dumbpad app
kubectl apply -f deployment.yml
-
Create Service
kubectl apply -f service.yml
- Runs 3 replicas of the Dumbpad app
- Uses Docker image:
dumbwareio/dumbpad:latest
- Mounts persistent storage at
/app/data
- 1Gi storage on host path
/mnt/app
- Storage class:
local-storage
- Reclaim policy:
Retain
- Requests 1Gi storage
- Access mode:
ReadWriteOnce
- Exposes Dumbpad pods on port 3000 inside the cluster
- Service type: ClusterIP
Check all resources:
kubectl get all -n nginx
Check PersistentVolumes:
kubectl get pv
kubectl get pvc -n nginx
Port-forward service for local access:
kubectl port-forward svc/dumbpad-service -n nginx 3000:3000
Now open http://localhost:3000 in your browser 🎉
To remove all resources:
kubectl delete -f service.yml
kubectl delete -f deployment.yml
kubectl delete -f clamvoluem.yml
kubectl delete -f persistvolume.yml
kubectl delete namespace nginx
- This deployment is configured for KIND (uses
hostPath
storage). - In cloud environments (AWS, GCP, Azure), replace PV and PVC with cloud-specific storage classes.
- For external access, update the service type from
ClusterIP
toNodePort
orLoadBalancer
.