This project contains a Kubernetes Playbook which provides the following services:
- MongoDB with persistent storage
- MongoDB intialiazer Job
- Simple Node.JS app which queries to MongoDB.
eval $(minikube docker-env)
sudo mkdir -p /var/nfs
sudo chown -R nobody:nogroup /var/nfs
sudo chmod -R a+rX /var/nfs
echo "/var/nfs 192.168.0.0/16(rw,no_root_squash,no_subtree_check)" >> /etc/exports
sudo systemctl restart nfs-server
kubectl create -f busybox.yaml
kubectl describe pod busybox
kubectl exec -ti busybox -- echo "TEST"
sudo mkdir -p /var/nfs/mongodb
kubectl create -f mongodb/mongodb-volume.yaml
kubectl describe pv mongodb-volume
kubectl create -f mongodb/mongodb-volume-claim.yaml
kubectl describe pvc mongodb-claim
kubectl create -f mongodb/mongodb-secrets.yaml
kubectl describe pv mongodb-volume
kubectl create -f mongodb/mongodb.yaml
kubectl describe pod mongodb-pod
kubectl logs mongodb-pod
kubectl create -f mongodb/mongodb-service.yaml
kubectl describe service mongodb-service
# Check DNS
kubectl exec -ti busybox -- nslookup mongodb-service.default
docker build -t mongodb-populator:1.0.0 mongodb-populator/
kubectl create -f mongodb-populator/mongodb-populator.yaml
POD=$(kubectl get pods --show-all --selector=job-name=mongodb-populator-job --output=jsonpath={.items..metadata.name} | tail -1)
kubectl logs $POD
docker build -t simple-node-app:1.0.0 simple-node-app/
kubectl create -f simple-node-app/simple-node-app.yaml
kubectl describe deployment simple-node-app-deployment
kubectl create -f simple-node-app/simple-node-app-service.yaml
kubectl describe service simple-node-app-service
kubectl exec -ti busybox -- curl http://simple-node-app-service.default:8080
minikube service simple-node-app-service