Setting Up a Local Kubernetes Environment for 20 Spring Boot Services

0
7
Asked By TechExplorer42 On

I'm looking for insights on creating a full local development environment that closely resembles our cloud Kubernetes configuration. We have about 20 Java Spring Boot services (not using native images), and we operate on AWS (EKS) with managed services like RDS, DocumentDB, and Kafka. My goal is to run our entire stack locally, not just one service. I know port-forwarding to a remote cluster is a temporary fix, so I'm seeking something reproducible and easy to share with the team.

I'm wrestling with a few challenges:
- **Memory Consumption**: Running 20 JVM services locally sounds overwhelming. How are others managing this?
- **Local Alternatives for AWS Services**: How can I best replicate RDS, DocumentDB, and Kafka locally? Is PostgreSQL in Docker and vanilla MongoDB good enough?
- **K8s Runtime Options**: I'm exploring k3s, k3d, kind, and minikube. What's working best for setups like this?

Also, I've considered tools like telepresence and mirrord for debugging, but I'm looking for a more primary solution. I'd love to hear about your actual setups for similar stacks, whether you run all services locally or maintain a shared dev cluster.

4 Answers

Answered By DevOpsPal On

For a local setup like yours, I suggest using k3d with lightweight alternatives like PostgreSQL, MongoDB, and Redpanda. In my experience, many teams either reduce their stack or opt for a shared dev cluster to manage resource consumption better. If you can decouple your services and limit dependencies, you can run different parts in parallel without overloading your machine.

Answered By JVMBuffer On

Honestly, if you’re trying to run all those services locally, it’s going to be tough. Most developers either run a subset of the stack or rely on Docker Compose, which can make it easier to manage without crashing your system.

Answered By CodeNinja22 On

My company has quite a similar situation—63 Spring Boot apps and a bunch of databases. We manage to run everything on Minikube, but it requires hefty resources (at least 48GB). We’ve minimized resource needs, which helps, and we even consolidated some Spring Boot apps into a single Tomcat container to share JVM resources and reduce memory use.

Answered By CloudGuru99 On

Running all those JVM services together is seriously intense! A lot of teams I know lean towards a shared dev cluster for heavier workloads. You might want to check out Docker Desktop for local Kubernetes, along with Localstack for mimicking your AWS services. It’s straightforward to set up and can ease the burden on your local machine.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.