Kubernetes¶
Skipper’s Kubernetes dataclient can be used, if you want to run Skipper as kubernetes-ingress-controller. It will get its route information from provisioned Ingress Objects.
Kubernetes Ingress Controller deployment¶
How to install Skipper ingress-controller for cluster operators.
Kubernetes Ingress Usage¶
Find out more how to use Skipper ingress features for deployers.
Why to choose Skipper?¶
Kubernetes is a fast changing environment and traditional http routers are not made for frequently changing routing tables. Skipper is a http proxy made to apply updates very often. Skipper is used in production with more than 200.000 routing table entries. Skipper has Filters to change http data and Predicates to change the matching rules, both can combined and chained. You can set these in ingress.yaml files to build resiliency patterns like load shedding, ratelimit or circuitbreaker. You can also use them to build more highlevel deployment patterns, for example feature toggles, shadow traffic or blue-green deployments.
Skipper’s main features:
- Filters - create, update, delete all kind of HTTP data
- collection of base http manipulations: for example manipulating Path, Querystring, HTTP Headers and redirect handling
- cookie handling
- circuitbreakers
- ratelimit: based on client or backend data
- Shadow traffic filters
- Predicates - advanced matching capability
- URL Path match:
Path("/foo")
- Host header match:
Host("^www.example.org$")
- Querystring:
QueryParam("featureX")
- Cookie based:
Cookie("alpha", /^enabled$/)
- source IP allowlist:
Source("1.2.3.4/24")
orClientIP("1.2.3.4/24")
- time based interval
- traffic by percentage supports also sticky sessions
- Kubernetes integration
- All Filters and Predicates can be used with 2 annotations
- Predicates:
zalando.org/skipper-predicate
- Filters:
zalando.org/skipper-filter
- Predicates:
- Custom routes can be defined with the annotation
zalando.org/skipper-routes
- RouteGroup CRD to support all skipper features without limitation
- monitoring
- opentracing
- access logs with fine granular control of logs by status codes
- Blue-Green deployments, with another Ingress annotation
zalando.org/backend-weights