mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Merge pull request #113742 from princepereira/ppereira-kubeproxy-flags
Add a flag to HNS Load Balancer policy to hint HNS about the VIP being an External IP
This commit is contained in:
commit
0e19bbb916
@ -48,6 +48,8 @@ type hns struct{}
|
||||
var (
|
||||
// LoadBalancerFlagsIPv6 enables IPV6.
|
||||
LoadBalancerFlagsIPv6 hcn.LoadBalancerFlags = 2
|
||||
// LoadBalancerPortMappingFlagsVipExternalIP enables VipExternalIP.
|
||||
LoadBalancerPortMappingFlagsVipExternalIP hcn.LoadBalancerPortMappingFlags = 16
|
||||
)
|
||||
|
||||
func (hns hns) getNetworkByName(name string) (*hnsNetworkInfo, error) {
|
||||
@ -305,6 +307,9 @@ func (hns hns) getLoadBalancer(endpoints []endpointsInfo, flags loadBalancerFlag
|
||||
if flags.localRoutedVIP {
|
||||
lbPortMappingFlags |= hcn.LoadBalancerPortMappingFlagsLocalRoutedVIP
|
||||
}
|
||||
if flags.isVipExternalIP {
|
||||
lbPortMappingFlags |= LoadBalancerPortMappingFlagsVipExternalIP
|
||||
}
|
||||
|
||||
lbFlags := hcn.LoadBalancerFlagsNone
|
||||
if flags.isDSR {
|
||||
|
@ -107,6 +107,7 @@ type loadBalancerIdentifier struct {
|
||||
type loadBalancerFlags struct {
|
||||
isILB bool
|
||||
isDSR bool
|
||||
isVipExternalIP bool
|
||||
localRoutedVIP bool
|
||||
useMUX bool
|
||||
preserveDIP bool
|
||||
@ -1313,7 +1314,7 @@ func (proxier *Proxier) syncProxyRules() {
|
||||
if len(nodePortEndpoints) > 0 {
|
||||
hnsLoadBalancer, err := hns.getLoadBalancer(
|
||||
nodePortEndpoints,
|
||||
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, localRoutedVIP: true, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
loadBalancerFlags{isVipExternalIP: true, isDSR: svcInfo.localTrafficDSR, localRoutedVIP: true, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
sourceVip,
|
||||
"",
|
||||
Enum(svcInfo.Protocol()),
|
||||
@ -1345,7 +1346,7 @@ func (proxier *Proxier) syncProxyRules() {
|
||||
// Try loading existing policies, if already available
|
||||
hnsLoadBalancer, err = hns.getLoadBalancer(
|
||||
externalIPEndpoints,
|
||||
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
loadBalancerFlags{isVipExternalIP: true, isDSR: svcInfo.localTrafficDSR, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
sourceVip,
|
||||
externalIP.ip,
|
||||
Enum(svcInfo.Protocol()),
|
||||
@ -1374,7 +1375,7 @@ func (proxier *Proxier) syncProxyRules() {
|
||||
if len(lbIngressEndpoints) > 0 {
|
||||
hnsLoadBalancer, err := hns.getLoadBalancer(
|
||||
lbIngressEndpoints,
|
||||
loadBalancerFlags{isDSR: svcInfo.preserveDIP || svcInfo.localTrafficDSR, useMUX: svcInfo.preserveDIP, preserveDIP: svcInfo.preserveDIP, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
loadBalancerFlags{isVipExternalIP: true, isDSR: svcInfo.preserveDIP || svcInfo.localTrafficDSR, useMUX: svcInfo.preserveDIP, preserveDIP: svcInfo.preserveDIP, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||
sourceVip,
|
||||
lbIngressIP.ip,
|
||||
Enum(svcInfo.Protocol()),
|
||||
|
Loading…
Reference in New Issue
Block a user