This is a project that explores using Kubernetes and Docker for containerizing and deploying an application as part of the COMS 6998 Cloud Computing and Big Data course assignement.
- Containerizing the To-Do Application using Docker and push the image to Docker Hub.
- Deploy the container on a local Kubernetes cluster using Minikube
- Explore various Kubernetes features such as a replication controller, health monitoring, rolling updates, and alerting.
- Use Prometheus and Alert Manager to send health alerts on Slack.
-
Install Docker and Kubernetes
-
Create Docker Image for the Todo Flask Application
docker build -t <image_name>
- View Docker image created
docker images
- Push image to DockerHub
docker push <image_name>
- Start Minikube
minikube start
- Create todo flask app service on kubernetes
cd flask-app
kubectl apply -f kube
kubectl get service
minikube service <service_name> --url
- Create prometheus service
cd ../prometheus
kubectl apply -f .
kubectl get service
minikube service <service_name> --url
- Create alertmanager service
cd ../alertmanager
kubectl apply -f .
kubectl get service
minikube service <service_name> --url
- Create kube-state-metrics service
cd ../kube-state-metrics
kubectl apply -f .
kubectl get service
minikube service <service_name> --url