-
Notifications
You must be signed in to change notification settings - Fork 712
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
k8s: Unexpected edge to the Internet node #1469
Comments
I am pretty sure this is happening because the nat mapper doesn't handle DNATing |
OK, it seems that The nginx container and the hello container between which there is an edge are not colocated and netstat in the hello container with an edge shows a connection between the pod ips:
However, netstat is empty in the other two hello containers with missing edges. And in the nginx container I see a connection to the Virtual service IP:
which I believe it's causing the outbound connection to the internet node. From the analysis in #1408 (comment) I believe that the natting information is available to conntrack but we are not using it properly for persistent connections. |
Here's a report with the problem: report.json.gz This patch solves it: --- report_pprint.json 2016-05-11 11:16:48.000000000 +0100
+++ report_pprint_corrected.json 2016-05-11 11:20:55.000000000 +0100
@@ -9615,17 +9615,15 @@
";10.36.2.5;39107": {
"id": ";10.36.2.5;39107",
"topology": "endpoint",
"counters": {},
"sets": {},
"adjacency": [
- ";10.36.0.4;80",
- ";10.39.249.88;80"
+ ";10.36.0.4;80"
],
"edges": {
- ";10.39.249.88;80": {},
";10.36.0.4;80": {}
},
"controls": {},
"latest": {
"procspied": {
"timestamp": "2016-05-11T09:53:42.422846453Z", So the nat mapper on nginx's end should add the DNATed edge ( That should be doable for new connections but I am not so sure we get conntrack flows for preexisting connections (which would also affect SNATing of containers) I will work on a fix |
It seems we do (we call conntrack -L in the conntrack flow walker) but maybe the persistent connections are not ready when the nat mapper walks over them with those flows. |
I expect the nginx container to talk to all the hello nodes but it's only talking to one.
Same repro as #1404 but using service instead of talking directly to pods, i.e.
Note how nginx seems to be talking to the internet instead of the other too hello containers
The text was updated successfully, but these errors were encountered: