Repository navigation
feat(kubernetes): gate zone-aware routing on ingress-controller zone balance - #4377
MustafaSaber wants to merge 8 commits into
Conversation
|
Docker image "registry-write.opensource.zalan.do/teapot/skipper:4537e8c34c46b2c4fcab78a4d70e474400ab4515" is not based on an approved base image. Any production deployment relying on this image will be blocked. To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace |
|
👍🏽 |
| ingressValidator *definitions.IngressV1Validator | ||
| balancedAcrossZones atomic.Bool | ||
| ingressControllerNamespace string | ||
| ingressControllerName string |
There was a problem hiding this comment.
Because we need namespace and name for the ResourceID anyway that we use to get endpointSlices
There was a problem hiding this comment.
But then we have not canary possible to include, what I don't like.
Please think about the problem of multiple deployments like we have in our setup.
There was a problem hiding this comment.
yeah nice catch, totally forgot about that. Updated now
1fa4be9 to
6888da1
Compare
… distributed across zone in this current poll Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
… zone-aware gate Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
Benchmark results compared against origin/master
```
goos: linux
goarch: amd64
pkg: github.com/zalando/skipper/routesrv
cpu: Intel(R) Core(TM) Ultra 7 265U
│ before │ after │
│ sec/op │ sec/op vs base │
FormatAndSet-14 268.7m ± ∞ ¹ 277.8m ± ∞ ¹ ~ (p=0.548 n=5)
FormatAndSetNoChange-14 60.45m ± ∞ ¹ 63.66m ± ∞ ¹ ~ (p=0.151 n=5)
FormatAndSetOneZoneChanged-14 232.6m ± ∞ ¹ 227.9m ± ∞ ¹ ~ (p=0.222 n=5)
geomean 155.8m 159.1m +2.16%
¹ need >= 6 samples for confidence interval at level 0.95
│ before │ after │
│ retained_MB │ retained_MB vs base │
FormatAndSet-14 1.986 ± ∞ ¹ 1.986 ± ∞ ¹ ~ (p=1.000 n=5) ²
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal
│ before │ after │
│ B/op │ B/op vs base │
FormatAndSet-14 227.8Mi ± ∞ ¹ 227.8Mi ± ∞ ¹ +0.00% (p=0.008 n=5)
FormatAndSetNoChange-14 86.34Mi ± ∞ ¹ 86.35Mi ± ∞ ¹ ~ (p=0.421 n=5)
FormatAndSetOneZoneChanged-14 229.7Mi ± ∞ ¹ 217.8Mi ± ∞ ¹ -5.15% (p=0.008 n=5)
geomean 165.3Mi 162.4Mi -1.75%
¹ need >= 6 samples for confidence interval at level 0.95
│ before │ after │
│ allocs/op │ allocs/op vs base │
FormatAndSet-14 2.380M ± ∞ ¹ 2.380M ± ∞ ¹ +0.00% (p=0.008 n=5)
FormatAndSetNoChange-14 700.0k ± ∞ ¹ 700.0k ± ∞ ¹ ~ (p=1.000 n=5)
FormatAndSetOneZoneChanged-14 2.483M ± ∞ ¹ 2.268M ± ∞ ¹ -8.65% (p=0.008 n=5)
geomean 1.605M 1.558M -2.97%
¹ need >= 6 samples for confidence interval at level 0.95
```
Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
6888da1 to
5d8f4c9
Compare
|
Docker image "registry-write.opensource.zalan.do/teapot/skipper:5d8f4c937c408106579470772154973481211225" is not based on an approved base image. Any production deployment relying on this image will be blocked. To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace |
…ination to also catch canary Signed-off-by: Mustafa Abdelrahman <mustafa.abdelrahman@zalando.de>
|
Docker image "registry-write.opensource.zalan.do/teapot/skipper:3de4f887b0d42adce00bb4307645af6fe3f1e772" is not based on an approved base image. Any production deployment relying on this image will be blocked. To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace |
|
👍🏽 |
Serve zone-filtered routes only when skipper-ingress itself is balanced
across zones; otherwise fall back to the global table. Adds configurable
namespace/name/max-skew, closes a data race and a silent-misconfiguration
gap, and adds unit/config/end-to-end test coverage.
088ef1d show no regression in benchmarks against master
skipper <--> routeSRV <--> k8s- mode, we will need to do same filtering inskipper <--> k8smode