At Free-Shoutcast.com, we provide free internet radio hosting powered by ShoutCast. As our user base grew, our legacy infrastructure – based on manually managed VPS instances – began to show its limits. We needed a way to scale quickly, improve uptime, and simplify operations. That’s when we turned to Kubernetes.
The challenge
Our original setup involved individual virtual servers, each configured to run a few Shoutcast instances. This became increasingly difficult to manage:
- Scaling during peak hours required manual intervention
- Server resources were often underutilized
- Deployments were error-prone and time-consuming
- Monitoring and fault recovery were limited
We needed a platform that could dynamically scale, recover from failures automatically, and be easy to maintain.
Why Kubernetes?
Kubernetes provided exactly what we were looking for:
- Container orchestration to run multiple Shoutcast streams reliably
- Auto-scaling based on usage and load
- Self-healing to automatically recover from failures
- Infrastructure as code for versioned, repeatable deployments
It gave us the flexibility to scale horizontally while reducing operational overhead.
Our implementation
1. Containerizing Shoutcast
We built a custom Docker image for Shoutcast, containing all necessary configs and startup scripts. This allowed us to standardize the environment across all nodes.
2. Stateful workloads
Since each stream requires a consistent identity (e.g., port number, config files), we used StatefulSets instead of Deployments. This ensured persistent configuration and predictable DNS names across restarts.
3. Configuration and secrets
Stream settings (like titles, ports, limits) were moved to ConfigMaps, while sensitive data (stream keys, admin passwords) were stored securely using Secrets.
4. Ingress and networking
We implemented an NGINX Ingress Controller to route public traffic to the correct stream pods. This setup supports HTTPS, hostname-based routing, and simplified exposure of services.
5. Monitoring and auto-healing
We added Kubernetes liveness and readiness probes to detect unhealthy instances and restart them automatically. Prometheus and Grafana provide insights into system health, listener metrics, and resource usage.
6. Auto-scaling
Using Horizontal Pod Autoscalers, we can dynamically adjust the number of stream pods based on CPU usage or active listener count. This keeps the system efficient under varying loads.
The results
Since adopting Kubernetes, we’ve achieved major improvements:
- 99.99% uptime
Kubernetes’ self-healing and rolling deployments keep services online even during failures or updates. - 40% better resource efficiency
Smart pod scheduling and autoscaling cut our server costs and reduced waste. - Instant scaling
We can deploy new radio streams or scale existing ones in seconds – no more manual setup. - Simplified maintenance and deployment
Updates are rolled out through CI/CD pipelines using Helm charts, reducing downtime and deployment errors. - Better monitoring and troubleshooting
Centralized logging and metrics help us detect and resolve issues faster than ever.
Challenges we faced
The migration wasn’t without hurdles:
- Persistent storage added complexity for stream configs, which we solved using Kubernetes volumes.
- Ingress tuning took some trial and error to support many streams behind a single entry point.
- Kubernetes has a learning curve, but the long-term benefits made the effort worthwhile.
Partnering with CloudPanda.io
We worked closely with CloudPanda.io, whose team helped us design and implement our Kubernetes architecture. Their expertise was key in building a production-ready, scalable solution from the ground up. From container optimization to network design, they were an invaluable partner.
What’s next
We’re are now planning to follow more benefits related to cloud migration, what includes:
- Multi-region deployments for improved latency and fault tolerance
- GitOps workflows to further automate deployments and rollbacks
- Custom Kubernetes operators to manage Shoutcast-specific logic at scale
Conclusion
Migrating to Kubernetes was a major turning point for Free-Shoutcast.com. We now run a scalable, resilient platform that supports thousands of streams with ease.
Thanks to Kubernetes – and to our partners at CloudPanda.io – we’re better equipped than ever to serve internet radio broadcasters around the world.
Interested in launching your own radio station or learning more about our stack? Visit us at Free-Shoutcast.com.
Leave a Reply