This project uses Spring Boot, PostgreSQL, Docker, Kubernetes, JPA, Hibernate REST API technologies.
1. Clone the repository
git clone https://github.com/yildirim7mustafa/k8s-project.git
2. Deploy PostgreSQL to kubernetes cluster
Apply your yaml file for database setup
kubectl create namespace pg-spring #create namespace
kubectl apply -f deployments/pg-deploy.yaml
kubectl apply -f deployments/pg-pv.yaml
kubectl apply -f deployments/pg-pvc.yaml
kubectl apply -f deployments/pg-service.yaml
kubectl apply -f deployment/pg-configmap.yaml
3. Create Database
This project uses "market1" database, lets create database.
kubectl get pods -n pg-spring # check postgre pod name
kubectl exec -it [pod-name] bash -n pg-spring
psql -U postgres
\l
CREATE DATABASE market1;
\c market1;
\l # you can show market1 database here
4. Clean & Install maven
5. build docker file and make a image from jar file then push dockerhub repository
docker build -t yildirim7mustafa/deneme .
docker push yildirim7mustafa/deneme # now this image is in internet!
6. Lets deploy our web project
kubectl apply -f deployments/order-svc-deployment.yaml
kubectl apply -f deployments/order-svc-service.yaml
6. Check setup
minikube ip
kubectl get service -n pg-spring # take order service port
Go browser "http://[minikube-ip]:[order-service-port]/api/v1/customer"
6. Optional if you want to add ingress, you need to do this;
- to enable minikube nginx ingress controller
minikube addons enable ingress
kubectl apply -f deployments/order-ingress.yaml
sudo nano /etc/hosts >> [minikube-ip sanalmarket.com]
Have a nice day