@@ -41,6 +41,7 @@ import (
41
41
"k8s.io/kubernetes/pkg/util/conntrack"
42
42
"k8s.io/kubernetes/pkg/util/iptables"
43
43
utilexec "k8s.io/utils/exec"
44
+ netutils "k8s.io/utils/net"
44
45
)
45
46
46
47
type portal struct {
@@ -127,7 +128,7 @@ type Proxier struct {
127
128
listenIP net.IP
128
129
iptables iptables.Interface
129
130
hostIP net.IP
130
- localAddrs []net. IP
131
+ localAddrs netutils. IPSet
131
132
proxyPorts PortAllocator
132
133
makeProxySocket ProxySocketFunc
133
134
exec utilexec.Interface
@@ -378,7 +379,10 @@ func (proxier *Proxier) syncProxyRules() {
378
379
} else if len (localAddrs ) == 0 {
379
380
klog .Warning ("No local addresses were found, assuming all external IPs are not local" )
380
381
}
381
- proxier .localAddrs = localAddrs
382
+
383
+ localAddrSet := netutils.IPSet {}
384
+ localAddrSet .Insert (localAddrs ... )
385
+ proxier .localAddrs = localAddrSet
382
386
383
387
proxier .ensurePortals ()
384
388
proxier .cleanupStaleStickySessions ()
@@ -734,7 +738,7 @@ func (proxier *Proxier) openPortal(service proxy.ServicePortName, info *ServiceI
734
738
}
735
739
736
740
func (proxier * Proxier ) openOnePortal (portal portal , protocol v1.Protocol , proxyIP net.IP , proxyPort int , name proxy.ServicePortName ) error {
737
- if len ( proxier .localAddrs ) > 0 && utilproxy . ContainsIP ( proxier .localAddrs , portal .ip ) {
741
+ if proxier .localAddrs . Len ( ) > 0 && proxier .localAddrs . Has ( portal .ip ) {
738
742
err := proxier .claimNodePort (portal .ip , portal .port , protocol , name )
739
743
if err != nil {
740
744
return err
@@ -910,7 +914,7 @@ func (proxier *Proxier) closePortal(service proxy.ServicePortName, info *Service
910
914
911
915
func (proxier * Proxier ) closeOnePortal (portal portal , protocol v1.Protocol , proxyIP net.IP , proxyPort int , name proxy.ServicePortName ) []error {
912
916
el := []error {}
913
- if len ( proxier .localAddrs ) > 0 && utilproxy . ContainsIP ( proxier .localAddrs , portal .ip ) {
917
+ if proxier .localAddrs . Len ( ) > 0 && proxier .localAddrs . Has ( portal .ip ) {
914
918
if err := proxier .releaseNodePort (portal .ip , portal .port , protocol , name ); err != nil {
915
919
el = append (el , err )
916
920
}
0 commit comments