This project was my first introduction to developing microservices and deploying them to a local Kubernetes cluster(minikube).
Multiple repos were combined for your convinience.
- Main repo https://github.com/harsh098/microservice-deploy/
- Authentication Service https://github.com/harsh098/microservice-deploy-auth
- Gateway Service https://github.com/harsh098/microservice-deploy-gateway-svc
- RabbitMQ deployment https://github.com/harsh098/microservice-deploy-rabbitmq
- Converter Service https://github.com/harsh098/microservice-deploy-converter-service
- Notification Service https://github.com/harsh098/microservice-deploy-notification-service
Assuming you have mysql
and mongo
installed on local and mongo
is configured to allow access without authentication.
- Configure You
mysqld.service
andmongod.service
to allow all hosts i.e.0.0.0.0
(for all IPv4) or::
(for all IPv6 abd IPv4)
sudo systemctl start docker mysqld and mongod
- Edit
init.sql
as instructed in the file - run
init.sql
- Run the following commands
minikube start
eval $(minikube -p minikube docker-env)
- Clone the git repo
- cd into the directory
Run the following command./builder.py .
- edit following
secret.yaml
files for your setup - Run
minikube ip
Note: replace 192.168.49.2
with the address in the output of minikube ip
Add the following lines to /etc/hosts
(in Mac/Linux) or C:\Windows\System32\Drivers\etc\hosts
(in Windows)
192.168.49.2 kubernetes.docker.internal
192.168.49.2 vid2mp3.com
192.168.49.2 rabbitmq-manager.com
Run The following commands
- cd into project directory
kubectl create -f auth_service/manifests
kubectl create -f gateway/manifests
kubectl create -f rabbit/manifests
kubectl create -f converter_svc/manifests
kubectl create -f notification_service/manifests
- Mac and Windows Users need to run
minikube tunnel
in a separate terminal window