You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Detailed information you find in our [godoc for dataclient kubernetes](https://godoc.org/github.com/zalando/skipper/dataclients/kubernetes).
8
7
9
8
## Kubernetes Ingress Controller deployment
10
9
@@ -22,32 +21,35 @@ proxy made to apply updates very often. Skipper is used in
22
21
production with more than 200.000 routing table entries.
23
22
Skipper has Filters to change http data and Predicates to change the
24
23
matching rules, both can combined and chained. You can set these in
25
-
ingress.yaml files to build resiliency patterns like ratelimit or
24
+
ingress.yaml files to build resiliency patterns like load shedding, ratelimit or
26
25
circuitbreaker. You can also use them to build more highlevel
27
26
deployment patterns, for example feature toggles, shadow traffic or
28
27
blue-green deployments.
29
28
30
29
Skipper's main features:
31
30
32
31
- Filters - create, update, delete all kind of HTTP data
33
-
-[collection of base http manipulations](https://godoc.org/github.com/zalando/skipper/filters/builtin): for example manipulating Path, Querystring, ResponseHeader, RequestHeader and redirect handling
-[time based interval](https://godoc.org/github.com/zalando/skipper/predicates/interval)
45
-
-[traffic by percentage](https://godoc.org/github.com/zalando/skipper/predicates/traffic) supports also sticky sessions
32
+
-[collection of base http manipulations](../reference/filters.md):
33
+
for example [manipulating Path](../reference/filters.md#http-path), [Querystring](../reference/filters.md#http-query), [HTTP Headers](../reference/filters.md#http-headers) and [redirect](../reference/filters.md#http-redirect) handling
The `extensions/v1beta1` and `networking.k8s.io/v1beta1` API versions of Ingress is no longer served as of v1.22.
328
-
In order to use `networking.k8s.io/v1` extension, you need to add `-kubernetes-ingress-v1` to the `skipper-ingress` container's arguments. This feature is added from skipper version v0.13.149
329
-
330
326
Now, let's see what we have just deployed.
331
327
This will create serviceaccount, PodSecurityPolicy and RBAC rules such that
332
-
skipper-ingress is allowed to listen on the hostnetwork.
328
+
skipper-ingress is allowed to listen on the hostnetwork and poll
329
+
ingress resources.
333
330
334
331
```yaml
335
332
# cat docs/kubernetes/deploy/deployment/rbac.yaml
@@ -495,7 +492,7 @@ The source code is available at [GitHub](https://github.com/baez90/skipper-helm)
495
492
The chart includes resource definitions for the following use cases:
> On Mac the tests may fail because of low max open file limit. Please make sure you have correct limits setup
@@ -167,8 +175,9 @@ you will can be found in our [ingress-controller deployment docs](https://openso
167
175
168
176
For AWS integration, we provide an ingress controller
169
177
https://github.com/zalando-incubator/kube-ingress-aws-controller, that
170
-
manage ALBs in front of your skipper deployment.
171
-
A [production example](https://github.com/zalando-incubator/kubernetes-on-aws/blob/stable/cluster/manifests/skipper/),
178
+
manage ALBs or NLBs in front of your skipper deployment.
179
+
A [production example for skipper](https://github.com/zalando-incubator/kubernetes-on-aws/blob/stable/cluster/manifests/skipper/)
180
+
and a [production example for kube-ingress-aws-controller](https://github.com/zalando-incubator/kubernetes-on-aws/tree/dev/cluster/manifests/ingress-controller/),
172
181
can be found in our Kubernetes configuration https://github.com/zalando-incubator/kubernetes-on-aws.
173
182
174
183
-[Comparison with other Ingress controllers](https://opensource.zalando.com/skipper/kubernetes/ingress-controller/#comparison-with-other-ingress-controllers)
@@ -182,20 +191,25 @@ includes information about [deployment use cases](https://opensource.zalando.com
182
191
and detailed information on these topics:
183
192
184
193
- The [Routing](https://pkg.go.dev/github.com/zalando/skipper/routing) Mechanism
- Extending It with Customized [Predicates](https://opensource.zalando.com/skipper/reference/predicates/), [Filters](https://opensource.zalando.com/skipper/reference/filters/), can be done by [Plugins](https://opensource.zalando.com/skipper/reference/plugins/) or [Lua Scripts](https://opensource.zalando.com/skipper/reference/scripts/)
192
196
-[Predicates](https://opensource.zalando.com/skipper/reference/predicates/) - additional predicates to match a route
- Extending It with Custom [Predicates](https://opensource.zalando.com/skipper/tutorials/development/#predicates), [Filters](https://opensource.zalando.com/skipper/tutorials/development/#filters), can be done by [building your own proxy](https://opensource.zalando.com/skipper/tutorials/built-your-own/), [Plugins](https://opensource.zalando.com/skipper/reference/plugins/) or [Lua Scripts](https://opensource.zalando.com/skipper/reference/scripts/)
-[Opentracing plugin](https://github.com/skipper-plugins/opentracing/) or extend [create your own](https://opensource.zalando.com/skipper/reference/plugins/#opentracing-plugins)
198
-
-[WAF plugin](https://github.com/jptosso/coraza-waf) - Web Application Firewall filter for Skipper routes
212
+
-[Opentracing tracers](https://pkg.go.dev/github.com/zalando/skipper/tracing/tracers) or extend [create your own](https://opensource.zalando.com/skipper/reference/plugins/#opentracing-plugins)
199
213
200
214
#### 1 Minute Skipper introduction
201
215
@@ -222,9 +236,9 @@ The following example shows a skipper routes file in eskip format, that has 3 na
222
236
223
237
Matching the route:
224
238
225
-
- baidu is using Path() matching to differentiate the HTTP requests to select the route.
226
-
- google is the default matching with wildcard '*'
227
-
- yandex is the default matching with wildcard '*' if you have a cookie "yandex=true"
239
+
- baidu is using `Path()` matching to differentiate the HTTP requests to select the route.
240
+
- google is the default matching with wildcard `*`
241
+
- yandex is the default matching with wildcard `*` if you have a cookie `yandex=true`
228
242
229
243
Request Filters:
230
244
@@ -242,7 +256,7 @@ To test each route you can use curl:
242
256
% curl -v localhost:9090/
243
257
% curl -v --cookie "yandex=true" localhost:9090/
244
258
245
-
To see the request that is made by the tee() filter you can use nc:
259
+
To see the shadow traffic request that is made by the `tee()` filter you can use nc:
@@ -253,33 +267,34 @@ This introduction was [moved to ingress controller documentation](https://openso
253
267
254
268
For More details, please check out our [Kubernetes ingress controller docs](https://opensource.zalando.com/skipper/kubernetes/ingress-controller/), our [ingress usage](https://opensource.zalando.com/skipper/kubernetes/ingress-usage/) and how to handle [common backend problems in Kubernetes](https://opensource.zalando.com/skipper/kubernetes/ingress-backends/).
255
269
256
-
You should have a base understanding of [Kubernetes](https://kubernetes.io) and
We moved the opentracing plugin source into the `tracing` package.
273
-
275
+
skipper, there is https://github.com/skipper-plugins organization to
276
+
enable you to do so. In order to explain you the build process with
277
+
custom Go modules there is
278
+
https://github.com/skipper-plugins/skipper-tracing-build, that was
279
+
used to build skipper's [opentracing package](https://github.com/skipper-plugins/opentracing).
280
+
We moved the opentracing plugin source into the `tracing` package, so
281
+
there is no need to use plugins for this case.
282
+
283
+
Because Go plugins are not very well supported by Go itself we do not
284
+
recommend to use plugins, but you can extend skipper and
285
+
[build your own proxy](https://opensource.zalando.com/skipper/tutorials/built-your-own/).
274
286
275
287
## Community
276
288
277
289
User or developer questions can be asked in our [public Google Group](https://groups.google.com/forum/#!forum/skipper-router)
278
290
279
-
We also have a slack channel #skipper in gophers.slack.com. Get an [invite](https://invite.slack.golangbridge.org).
291
+
We have a slack channel #skipper in gophers.slack.com. Get an [invite](https://invite.slack.golangbridge.org).
280
292
If for some reason this link doesn't work, you can find more information about
281
293
the gophers communities [here](https://github.com/gobridge/about-us/blob/master/README.md#onlineoffline-communities).
282
294
295
+
The preferred communication channel is the slack channel, because the google group is a manual process to add members.
296
+
Feel also free to [create an issue](https://github.com/zalando/skipper/issues/new/choose), if you dislike chat and post your questions there.
297
+
283
298
### Proposals
284
299
285
300
We do our proposals open in [Skipper's Google drive](https://drive.google.com/drive/folders/0B9LwJMF9koB-ZEk4bEhZal9uOWM).
@@ -289,11 +304,11 @@ bigger change we will invite you to a document, such that we can work together.
289
304
290
305
### Users
291
306
292
-
Zalando uses this project as shop frontend http router with 350000 routes, as
293
-
Kubernetes ingress controller and runs several custom skipper
294
-
instances that use skipper as library.
307
+
Zalando used this project as shop frontend http router with 350000 routes.
308
+
We use it as Kubernetes ingress controller in more than 100 production clusters. With every day traffic between 500k and 7M RPS serving 15000 ingress and 3750 RouteGroups at less than ¢5/1M requests.
309
+
We also run several custom skipper instances that use skipper as library.
295
310
296
-
Sergio Ballesteros from [spotahome](https://www.spotahome.com/)
311
+
Sergio Ballesteros from [spotahome](https://www.spotahome.com/) said 2018:
297
312
> We also ran tests with several ingress controllers and skipper gave us the more reliable results. Currently we are running skipper since almost 2 years with like 20K Ingress rules.
298
313
> The fact that skipper is written in go let us understand the code, add features and fix bugs since all of our infra stack is golang.
0 commit comments