Skipper is an HTTP router and reverse proxy for service composition that can handle over 300,000 route definitions with detailed lookup conditions and flexible request augmentation through filters.
The tool solves the problem of routing HTTP traffic across distributed services while maintaining high performance and flexibility. It identifies routes based on request properties such as path, method, host, and headers, then applies filters to modify requests and responses independently for each route. Skipper streams incoming requests and backend responses simultaneously and can update routing rules without downtime by pulling configuration from multiple sources including etcd, Kubernetes Ingress resources, static files, and custom data sources. It can also act as a final endpoint for static file serving or mock backends.
Skipper suits organizations running Kubernetes clusters that need a powerful ingress controller with advanced routing capabilities beyond basic path and host matching. It works well for teams that require custom filters, predicates, or data sources since the tool is designed primarily for extension through Go code. The project includes built-in support for HTTP/1.1, HTTP/2, and H2C, along with features like cluster rate limiting, authentication and authorization without external dependencies, and tiered caching. It ships with eskip, a descriptive configuration language for routing rules, plus additional utilities like routesrv for reducing kube-apiserver load and a Kubernetes validation webhook.
The project maintains steady development activity with regular updates to core functionality and documentation. The maintainers actively support multiple deployment patterns and data sources, indicating responsiveness to different operational needs. The codebase includes comprehensive examples and plugins that demonstrate extension patterns, suggesting the team values practical guidance for customization. Development focuses on production-grade features like cluster rate limiting and remote storage support for caching and certificate management.