yildirim7mustafa / Kubernetes-Web-Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kubernetes project

This project uses Spring Boot, PostgreSQL, Docker, Kubernetes, JPA, Hibernate REST API technologies.

Steps to Setup

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

image

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

About


Languages

Language:Java 93.7%Language:Dockerfile 6.3%