-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Traffic shadowing not working as expected #3340
Comments
Please show the logs that show the timeouts. I am pretty sure that the problem is that the target application is not able to read the body fast enough and therefore the other call hangs in the I/O pipe. That's expected behavior enforced by the current efficient implementation which we likely won't change. It's likely a side effect of being efficient. |
Here are the logs
I doubt if its about reading body fast enough, since both applications are in same network and there shouldnt be much of delay. Plus, adding this annotation on ingress meant for original jenkins breaks the original jenkins itself and all webhook calls meant for "original" jenkins are broken post that with above logs. |
Hi, I tried to reproduce but I can't. Made 2 deployments (deployment, service & ingress) and added tee to one of them but I get requests on both services. So it would be a bit hard to debug without more details about the setup. The bigger the body the more probable you will face the issue as @szuecs mentioned because we split request into buffers and if one of the backends is slow it will make both slow reproducer.yamlapiVersion: v1
kind: Namespace
metadata:
name: foo
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: simple2
namespace: foo
spec:
selector:
matchLabels:
application: app-test
template:
metadata:
labels:
application: app-test
spec:
containers:
- name: simple2
image: registry.opensource.zalan.do/teapot/skipper:latest
args:
- skipper
- -inline-routes
- '* -> logHeader() -> inlineContent("Busted!") -> <shunt>'
- -address=:80
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
name: http
---
apiVersion: v1
kind: Service
metadata:
name: simple2
namespace: foo
spec:
selector:
application: app-test
ports:
- name: http
port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: simple2
namespace: foo
annotations:
zalando.org/skipper-filter: tee("https://another-simple2.example.com")
spec:
rules:
- host: simple2.example.com
http:
paths:
- pathType: ImplementationSpecific
backend:
service:
name: simple2
port:
number: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: another-simple2
namespace: foo
spec:
selector:
matchLabels:
application: app
template:
metadata:
labels:
application: app
spec:
containers:
- name: another-simple2
image: registry.opensource.zalan.do/teapot/skipper:latest
args:
- skipper
- -inline-routes
- '* -> logHeader() -> inlineContent("another-simple2!") -> <shunt>'
- -address=:80
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
name: http
---
apiVersion: v1
kind: Service
metadata:
name: another-simple2
namespace: foo
spec:
selector:
application: app
ports:
- name: http
port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: another-simple2
namespace: foo
spec:
rules:
- host: another-simple2.example.com
http:
paths:
- pathType: ImplementationSpecific
backend:
service:
name: another-simple2
port:
number: 80
|
Describe the bug
We're looking to replicate the traffic from original jenkins to another parallel running jenkins. We have added
zalando.org/skipper-filter
in original jenkins withtee
predicate to replicate the traffic toanother-jenkins.company.org
but as soon as we add this annotation, jenkins API calls stop working and result in timeout.Annotation added
To Reproduce
Add context, for example:
Expected behavior
We'd expect same traffic to reach
another-jenkins
instance as wellObserved behavior
But we only see timeout in original jenkins post this addition of annotation on skipper ingress.
The text was updated successfully, but these errors were encountered: