-
Notifications
You must be signed in to change notification settings - Fork 110
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
Simple Broker does not become Ready, 502 #2107
Comments
This started working when disabling istio-injection. Although, it seems that knative eventing now is incompatible with istio as you will not be allowed to connect via the pod ip directly. https://knative.slack.com/archives/C02C56QF282/p1650453957212779 |
Hi @LeonardAukea, The probing happens from the |
Hi @pierDipi, I have confirmed this behaviour with istio's sleep and httpbin samples deployed to a namespace with istio-injection enabled:-
|
I've created a patch in #2112, after CI jobs run and they are green, is anyone willing to test the patch with Istio and your setup (I will give you custom manifests unless you want to build the project from source code)? |
Thanks @pierDipi, we can definitely test the patch. I had a quick look through the PR and if I have understood correctly the probing is still based on the Pod IP addresses? We can certainly test the fix, but I'm fairly sure that we cannot connect to those IPs from within Istio. The reason behind this is that the Envoy config provided by Istio is based on the k8s service DNS address, which Envoy can resolve to an IP and match against an incoming request's authority. However, Envoy does not know about the relationship between the k8s Service and the set of Pods that back it, so Envoy has no upstream config for those Pod IPs and returns a 502 response. |
No, it's targeting the service [1] https://github.com/knative-sandbox/eventing-kafka-broker/pull/2112/files#diff-56654645ee38a0dbe580207552e347b02dfbdb935ec08b38b135228bf023be42R94-R98 The unit tests are still using pods [4] because the prober library is unaware of the target hosts (whether they are IPs or names) |
Here's a gist with patched artifacts https://gist.github.com/pierDipi/b584b0a9167dfeeffd0f934847c1dffa (you have to scroll a bit to find all the files you might need, probably it's only |
OK, so I guess it will work since service is exposed via Kubernetes DNS, but I guess it's advised to use |
Yes, it should work ok with a k8s |
I think we should go ahead and test this. Moreover, it makes sense for us to have knative-eventing within istio mesh, as the issues will kind of propagate to knative serving, assuming these Also, thanks for the quick fix @pierDipi . We will report back to you to verify that things work as expected |
Thanks for filing the issue and willing to test the patch! |
Hi @matzew ! Sorry for the late reply. The patch worked for us, thanks! |
Thank you! |
@markhulia Thanks for testing the patch! |
Hi all, we have a wierd issue with a simple broker not becoming ready:
Looking at the logs from kafka-controller we see that the Probe fails due to bad gateway 502:
So the IP is for kafka-broker-receiver pod. To be honest we have no clue what might be wrong here. Also seems wierd to probe the pod directly instead of a service
Expected behavior
The broker to become ready
To Reproduce
Steps to reproduce the behavior.
Knative release version
1.3.0
Additional context
Add any other context about the problem here such as proposed priority
The text was updated successfully, but these errors were encountered: