In the ever-evolving world of technology, finding the right infrastructure setup can be a game-changer. Today, I want to share my current setup that I’ve grown to love and appreciate. It’s a powerful combination of modern technologies that provides flexibility, scalability, and ease of management.
The Foundation: Debian VPS on Hetzner
At the core of my setup is a Debian VPS hosted on Hetzner. This provides a solid, reliable base for everything else to run on. Debian’s stability and Hetzner’s performance make for an excellent starting point.
Orchestration with K3s
On top of this VPS, I’m running K3s, a lightweight Kubernetes distribution. K3s gives me all the power of Kubernetes without the overhead, perfect for a VPS environment. It allows me to manage my containerized applications efficiently and provides a great platform for everything else.
GitOps with ArgoCD
For continuous deployment, I’m using ArgoCD. This GitOps tool ensures that my applications are always in sync with my Git repositories. It’s a fantastic way to manage deployments and maintain consistency across my infrastructure.
Persistent Storage with Longhorn
Longhorn provides the persistent storage layer for my setup. It’s a powerful, Kubernetes-native storage solution that ensures my data is safe and easily accessible to my applications.
Databases Galore
One of the beauties of this setup is how easy it is to run multiple databases. Currently, I’m running:
- PostgreSQL
- MongoDB
- MariaDB
- Redis
This variety allows me to choose the right tool for each job, whether I need relational data, document storage, or fast in-memory caching.
Additional Services
To round out my infrastructure, I’ve also set up:
- Harbor: A trusted cloud-native repository for container images
- Keycloak: For robust identity and access management
Why I Love This Setup
The core reason I’m so fond of this infrastructure is its embrace of OCI (Open Container Initiative) containers. For me, containers represent the future of application deployment. They provide:
- Consistency: My applications run the same way every time, regardless of the environment.
- Isolation: Each application and its dependencies are neatly packaged, reducing conflicts.
- Portability: I can easily move my applications between environments if needed.
Networking Magic: Ingress and Traefik
To expose my services, I’m using Kubernetes Ingress with Traefik as the Ingress controller. Traefik makes it incredibly easy to expose services, and when combined with Cloudflare (using full strict mode), it provides excellent security for all my exposed endpoints.
Conclusion
This infrastructure setup gives me everything I need: flexibility, scalability, security, and ease of management. It’s a joy to work with and allows me to focus on building and deploying applications rather than wrestling with infrastructure.
What’s your ideal infrastructure setup? Have you experimented with K3s or other lightweight Kubernetes distributions? Let me know in the comments below!
Leave a Reply