Skip to content

Commit

Permalink
Choosing the right source VIP for local endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
sbangari committed Nov 22, 2020
1 parent 94a0349 commit f848717
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion pkg/proxy/winkernel/proxier.go
Expand Up @@ -1078,7 +1078,18 @@ func (proxier *Proxier) syncProxyRules() {
}
}

if proxier.network.networkType == "Overlay" {
// For Overlay networks 'SourceVIP' on an Load balancer Policy can either be chosen as
// a) Source VIP configured on kube-proxy (or)
// b) Node IP of the current node
//
// For L2Bridge network the Source VIP is always the NodeIP of the current node and the same
// would be configured on kube-proxy as SourceVIP
//
// The logic for choosing the SourceVIP in Overlay networks is based on the backend endpoints:
// a) Endpoints are any IP's outside the cluster ==> Choose NodeIP as the SourceVIP
// b) Endpoints are IP addresses of a remote node => Choose NodeIP as the SourceVIP
// c) Everything else (Local POD's, Remote POD's, Node IP of current node) ==> Choose the configured SourceVIP
if proxier.network.networkType == "Overlay" && !ep.GetIsLocal() {
providerAddress := proxier.network.findRemoteSubnetProviderAddress(ep.IP())

isNodeIP := (ep.IP() == providerAddress)
Expand Down

0 comments on commit f848717

Please sign in to comment.