This project demonstrates the deployment of a Java Spring Boot application on Kubernetes using Minikube running on an AWS EC2 instance.
The application is containerized using Docker and deployed to a Kubernetes cluster using Deployment and Service resources. The project also demonstrates pod scaling and service exposure through Kubernetes.
User
↓
Kubernetes Service (NodePort)
↓
Kubernetes Deployment
↓
Spring Boot Application Pods
- AWS EC2
- Amazon Linux 2023
- Docker
- Kubernetes
- Minikube
- kubectl
- Java 21
- Spring Boot
- Git
- GitHub
kubernetes-java-application-deployment/
├── deployment.yaml
├── service.yaml
└── README.md
Deployment configuration creates multiple replicas of the Spring Boot application.
Features:
- Multiple Pod Replicas
- Self-Healing Pods
- Containerized Application Deployment
- Rolling Updates Support
NodePort service exposes the application to external users.
Features:
- Internal Cluster Networking
- External Access Through NodePort
- Load Distribution Across Pods
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl get pods
kubectl get deployments
kubectl get svc
Scale deployment to 4 replicas:
kubectl scale deployment backend-deployment --replicas=4
Verify:
kubectl get pods
Successfully deployed a Java Spring Boot application on Kubernetes and managed application lifecycle using Kubernetes Deployments and Services.
- Kubernetes Cluster Setup
- Minikube Administration
- Pod Management
- Deployments
- Services
- Scaling Applications
- Container Orchestration
- AWS EC2 Administration
Vignesh
AWS | DevOps | Linux | Kubernetes