mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
Skip creating HNS loadbalancer with empty endpoints
This commit is contained in:
parent
12b4bef7bd
commit
26be8d6890
@ -1240,22 +1240,27 @@ func (proxier *Proxier) syncProxyRules() {
|
|||||||
if svcInfo.preserveDIP || svcInfo.localTrafficDSR {
|
if svcInfo.preserveDIP || svcInfo.localTrafficDSR {
|
||||||
nodePortEndpoints = hnsLocalEndpoints
|
nodePortEndpoints = hnsLocalEndpoints
|
||||||
}
|
}
|
||||||
hnsLoadBalancer, err := hns.getLoadBalancer(
|
|
||||||
nodePortEndpoints,
|
|
||||||
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, localRoutedVIP: true, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
|
||||||
sourceVip,
|
|
||||||
"",
|
|
||||||
Enum(svcInfo.Protocol()),
|
|
||||||
uint16(svcInfo.targetPort),
|
|
||||||
uint16(svcInfo.NodePort()),
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
klog.ErrorS(err, "Policy creation failed")
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
svcInfo.nodePorthnsID = hnsLoadBalancer.hnsID
|
if len(nodePortEndpoints) > 0 {
|
||||||
klog.V(3).InfoS("Hns LoadBalancer resource created for nodePort resources", "clusterIP", svcInfo.ClusterIP(), "hnsID", hnsLoadBalancer.hnsID)
|
hnsLoadBalancer, err := hns.getLoadBalancer(
|
||||||
|
nodePortEndpoints,
|
||||||
|
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, localRoutedVIP: true, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||||
|
sourceVip,
|
||||||
|
"",
|
||||||
|
Enum(svcInfo.Protocol()),
|
||||||
|
uint16(svcInfo.targetPort),
|
||||||
|
uint16(svcInfo.NodePort()),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
klog.ErrorS(err, "Policy creation failed")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
svcInfo.nodePorthnsID = hnsLoadBalancer.hnsID
|
||||||
|
klog.V(3).InfoS("Hns LoadBalancer resource created for nodePort resources", "clusterIP", svcInfo.ClusterIP(), "nodeport", svcInfo.NodePort(), "hnsID", hnsLoadBalancer.hnsID)
|
||||||
|
} else {
|
||||||
|
klog.V(3).InfoS("Skipped creating Hns LoadBalancer for nodePort resources", "clusterIP", svcInfo.ClusterIP(), "nodeport", svcInfo.NodePort(), "hnsID", hnsLoadBalancer.hnsID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a Load Balancer Policy for each external IP
|
// Create a Load Balancer Policy for each external IP
|
||||||
@ -1265,22 +1270,27 @@ func (proxier *Proxier) syncProxyRules() {
|
|||||||
if svcInfo.localTrafficDSR {
|
if svcInfo.localTrafficDSR {
|
||||||
externalIPEndpoints = hnsLocalEndpoints
|
externalIPEndpoints = hnsLocalEndpoints
|
||||||
}
|
}
|
||||||
// Try loading existing policies, if already available
|
|
||||||
hnsLoadBalancer, err = hns.getLoadBalancer(
|
if len(externalIPEndpoints) > 0 {
|
||||||
externalIPEndpoints,
|
// Try loading existing policies, if already available
|
||||||
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
hnsLoadBalancer, err = hns.getLoadBalancer(
|
||||||
sourceVip,
|
externalIPEndpoints,
|
||||||
externalIP.ip,
|
loadBalancerFlags{isDSR: svcInfo.localTrafficDSR, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||||
Enum(svcInfo.Protocol()),
|
sourceVip,
|
||||||
uint16(svcInfo.targetPort),
|
externalIP.ip,
|
||||||
uint16(svcInfo.Port()),
|
Enum(svcInfo.Protocol()),
|
||||||
)
|
uint16(svcInfo.targetPort),
|
||||||
if err != nil {
|
uint16(svcInfo.Port()),
|
||||||
klog.ErrorS(err, "Policy creation failed")
|
)
|
||||||
continue
|
if err != nil {
|
||||||
|
klog.ErrorS(err, "Policy creation failed")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
externalIP.hnsID = hnsLoadBalancer.hnsID
|
||||||
|
klog.V(3).InfoS("Hns LoadBalancer resource created for externalIP resources", "externalIP", externalIP, "hnsID", hnsLoadBalancer.hnsID)
|
||||||
|
} else {
|
||||||
|
klog.V(3).InfoS("Skipped creating Hns LoadBalancer for externalIP resources", "externalIP", externalIP, "hnsID", hnsLoadBalancer.hnsID)
|
||||||
}
|
}
|
||||||
externalIP.hnsID = hnsLoadBalancer.hnsID
|
|
||||||
klog.V(3).InfoS("Hns LoadBalancer resource created for externalIP resources", "externalIP", externalIP, "hnsID", hnsLoadBalancer.hnsID)
|
|
||||||
}
|
}
|
||||||
// Create a Load Balancer Policy for each loadbalancer ingress
|
// Create a Load Balancer Policy for each loadbalancer ingress
|
||||||
for _, lbIngressIP := range svcInfo.loadBalancerIngressIPs {
|
for _, lbIngressIP := range svcInfo.loadBalancerIngressIPs {
|
||||||
@ -1289,21 +1299,27 @@ func (proxier *Proxier) syncProxyRules() {
|
|||||||
if svcInfo.preserveDIP || svcInfo.localTrafficDSR {
|
if svcInfo.preserveDIP || svcInfo.localTrafficDSR {
|
||||||
lbIngressEndpoints = hnsLocalEndpoints
|
lbIngressEndpoints = hnsLocalEndpoints
|
||||||
}
|
}
|
||||||
hnsLoadBalancer, err := hns.getLoadBalancer(
|
|
||||||
lbIngressEndpoints,
|
if len(lbIngressEndpoints) > 0 {
|
||||||
loadBalancerFlags{isDSR: svcInfo.preserveDIP || svcInfo.localTrafficDSR, useMUX: svcInfo.preserveDIP, preserveDIP: svcInfo.preserveDIP, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
hnsLoadBalancer, err := hns.getLoadBalancer(
|
||||||
sourceVip,
|
lbIngressEndpoints,
|
||||||
lbIngressIP.ip,
|
loadBalancerFlags{isDSR: svcInfo.preserveDIP || svcInfo.localTrafficDSR, useMUX: svcInfo.preserveDIP, preserveDIP: svcInfo.preserveDIP, sessionAffinity: sessionAffinityClientIP, isIPv6: proxier.isIPv6Mode},
|
||||||
Enum(svcInfo.Protocol()),
|
sourceVip,
|
||||||
uint16(svcInfo.targetPort),
|
lbIngressIP.ip,
|
||||||
uint16(svcInfo.Port()),
|
Enum(svcInfo.Protocol()),
|
||||||
)
|
uint16(svcInfo.targetPort),
|
||||||
if err != nil {
|
uint16(svcInfo.Port()),
|
||||||
klog.ErrorS(err, "Policy creation failed")
|
)
|
||||||
continue
|
if err != nil {
|
||||||
|
klog.ErrorS(err, "Policy creation failed")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
lbIngressIP.hnsID = hnsLoadBalancer.hnsID
|
||||||
|
klog.V(3).InfoS("Hns LoadBalancer resource created for loadBalancer Ingress resources", "lbIngressIP", lbIngressIP)
|
||||||
|
} else {
|
||||||
|
klog.V(3).InfoS("Skipped creating Hns LoadBalancer for loadBalancer Ingress resources", "lbIngressIP", lbIngressIP)
|
||||||
}
|
}
|
||||||
lbIngressIP.hnsID = hnsLoadBalancer.hnsID
|
|
||||||
klog.V(3).InfoS("Hns LoadBalancer resource created for loadBalancer Ingress resources", "lbIngressIP", lbIngressIP)
|
|
||||||
}
|
}
|
||||||
svcInfo.policyApplied = true
|
svcInfo.policyApplied = true
|
||||||
klog.V(2).InfoS("Policy successfully applied for service", "serviceInfo", svcInfo)
|
klog.V(2).InfoS("Policy successfully applied for service", "serviceInfo", svcInfo)
|
||||||
|
Loading…
Reference in New Issue
Block a user