-
Notifications
You must be signed in to change notification settings - Fork 76
Open
Bug
1 / 21 of 2 issues completed
Copy link
Labels
bugSomething isn't workingSomething isn't working
Description
When a client calls a Kubernetes Service, kube-proxy performs NAT, translating the Service ClusterIP to a Pod IP. OBI observes the post-NAT Pod IP, not the original Service IP.
If the destination Pod IP is not in the K8s informer cache (due to cross-namespace visibility, timing, or other reasons), name resolution falls back to showing the raw IP address, which is then replaced with "outgoing" in service graphs.
This results in incomplete service graph connections where the destination service appears as "outgoing" instead of the actual service name.
flowchart LR
subgraph "Client Pod"
A[app calls<br/>bar-svc.bar-ns:80]
end
subgraph "kube-proxy NAT"
B[ClusterIP 10.96.0.50<br/>→ Pod IP 10.0.2.5]
end
subgraph "Server Pod"
C[bar-svc-xyz<br/>10.0.2.5:80]
end
A -->|"DNS: bar-svc.bar-ns<br/>→ 10.96.0.50"| B
B -->|"eBPF sees:<br/>dst = 10.0.2.5"| C
subgraph "Name Resolution"
D{Pod IP 10.0.2.5<br/>in K8s cache?}
E[HostName = bar-svc]
F[HostName = outgoing]
end
C -.-> D
D -->|Yes| E
D -->|No| F
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Todo