Skip to content

Commit 1d88598

Browse files
authored
Merge pull request kubernetes#130561 from danwinship/more-misc-proxy-cleanup
more misc proxy cleanup
2 parents 6216201 + b62503d commit 1d88598

21 files changed

+57
-104
lines changed

cmd/kube-proxy/app/server_linux.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,6 @@ func (s *ProxyServer) createProxier(ctx context.Context, config *proxyconfigapi.
175175
ctx,
176176
ipt,
177177
utilsysctl.New(),
178-
exec.New(),
179178
config.SyncPeriod.Duration,
180179
config.MinSyncPeriod.Duration,
181180
config.Linux.MasqueradeAll,
@@ -199,7 +198,6 @@ func (s *ProxyServer) createProxier(ctx context.Context, config *proxyconfigapi.
199198
s.PrimaryIPFamily,
200199
iptInterface,
201200
utilsysctl.New(),
202-
exec.New(),
203201
config.SyncPeriod.Duration,
204202
config.MinSyncPeriod.Duration,
205203
config.Linux.MasqueradeAll,
@@ -219,8 +217,7 @@ func (s *ProxyServer) createProxier(ctx context.Context, config *proxyconfigapi.
219217
return nil, fmt.Errorf("unable to create proxier: %v", err)
220218
}
221219
} else if config.Mode == proxyconfigapi.ProxyModeIPVS {
222-
execer := exec.New()
223-
ipsetInterface := utilipset.New(execer)
220+
ipsetInterface := utilipset.New()
224221
ipvsInterface := utilipvs.New()
225222
if err := ipvs.CanUseIPVSProxier(ctx, ipvsInterface, ipsetInterface, config.IPVS.Scheduler); err != nil {
226223
return nil, fmt.Errorf("can't use the IPVS proxier: %v", err)
@@ -235,7 +232,6 @@ func (s *ProxyServer) createProxier(ctx context.Context, config *proxyconfigapi.
235232
ipvsInterface,
236233
ipsetInterface,
237234
utilsysctl.New(),
238-
execer,
239235
config.SyncPeriod.Duration,
240236
config.MinSyncPeriod.Duration,
241237
config.IPVS.ExcludeCIDRs,
@@ -263,7 +259,6 @@ func (s *ProxyServer) createProxier(ctx context.Context, config *proxyconfigapi.
263259
ipvsInterface,
264260
ipsetInterface,
265261
utilsysctl.New(),
266-
execer,
267262
config.SyncPeriod.Duration,
268263
config.MinSyncPeriod.Duration,
269264
config.IPVS.ExcludeCIDRs,
@@ -515,8 +510,7 @@ func platformCleanup(ctx context.Context, mode proxyconfigapi.ProxyMode, cleanup
515510
// Clean up iptables and ipvs rules if switching to nftables, or if cleanupAndExit
516511
if !isIPTablesBased(mode) || cleanupAndExit {
517512
ipts, _ := getIPTables(v1.IPFamilyUnknown)
518-
execer := exec.New()
519-
ipsetInterface := utilipset.New(execer)
513+
ipsetInterface := utilipset.New()
520514
ipvsInterface := utilipvs.New()
521515

522516
for _, ipt := range ipts {

pkg/proxy/iptables/proxier.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ limitations under the License.
1919

2020
package iptables
2121

22-
//
23-
// NOTE: this needs to be tested in e2e since it uses iptables for everything.
24-
//
25-
2622
import (
2723
"bytes"
2824
"context"
@@ -54,7 +50,6 @@ import (
5450
"k8s.io/kubernetes/pkg/proxy/util/nfacct"
5551
"k8s.io/kubernetes/pkg/util/async"
5652
utiliptables "k8s.io/kubernetes/pkg/util/iptables"
57-
utilexec "k8s.io/utils/exec"
5853
)
5954

6055
const (
@@ -101,7 +96,6 @@ func NewDualStackProxier(
10196
ctx context.Context,
10297
ipt [2]utiliptables.Interface,
10398
sysctl utilsysctl.Interface,
104-
exec utilexec.Interface,
10599
syncPeriod time.Duration,
106100
minSyncPeriod time.Duration,
107101
masqueradeAll bool,
@@ -117,15 +111,15 @@ func NewDualStackProxier(
117111
) (proxy.Provider, error) {
118112
// Create an ipv4 instance of the single-stack proxier
119113
ipv4Proxier, err := NewProxier(ctx, v1.IPv4Protocol, ipt[0], sysctl,
120-
exec, syncPeriod, minSyncPeriod, masqueradeAll, localhostNodePorts, masqueradeBit,
114+
syncPeriod, minSyncPeriod, masqueradeAll, localhostNodePorts, masqueradeBit,
121115
localDetectors[v1.IPv4Protocol], hostname, nodeIPs[v1.IPv4Protocol],
122116
recorder, healthzServer, nodePortAddresses, initOnly)
123117
if err != nil {
124118
return nil, fmt.Errorf("unable to create ipv4 proxier: %v", err)
125119
}
126120

127121
ipv6Proxier, err := NewProxier(ctx, v1.IPv6Protocol, ipt[1], sysctl,
128-
exec, syncPeriod, minSyncPeriod, masqueradeAll, false, masqueradeBit,
122+
syncPeriod, minSyncPeriod, masqueradeAll, false, masqueradeBit,
129123
localDetectors[v1.IPv6Protocol], hostname, nodeIPs[v1.IPv6Protocol],
130124
recorder, healthzServer, nodePortAddresses, initOnly)
131125
if err != nil {
@@ -137,8 +131,7 @@ func NewDualStackProxier(
137131
return metaproxier.NewMetaProxier(ipv4Proxier, ipv6Proxier), nil
138132
}
139133

140-
// Proxier is an iptables based proxy for connections between a localhost:lport
141-
// and services that provide the actual backends.
134+
// Proxier is an iptables-based proxy
142135
type Proxier struct {
143136
// ipFamily defines the IP family which this proxier is tracking.
144137
ipFamily v1.IPFamily
@@ -175,7 +168,6 @@ type Proxier struct {
175168
localDetector proxyutil.LocalTrafficDetector
176169
hostname string
177170
nodeIP net.IP
178-
recorder events.EventRecorder
179171

180172
serviceHealthServer healthcheck.ServiceHealthServer
181173
healthzServer *healthcheck.ProxyHealthServer
@@ -221,16 +213,11 @@ type Proxier struct {
221213
// Proxier implements proxy.Provider
222214
var _ proxy.Provider = &Proxier{}
223215

224-
// NewProxier returns a new Proxier given an iptables Interface instance.
225-
// Because of the iptables logic, it is assumed that there is only a single Proxier active on a machine.
226-
// An error will be returned if iptables fails to update or acquire the initial lock.
227-
// Once a proxier is created, it will keep iptables up to date in the background and
228-
// will not terminate if a particular iptables call fails.
216+
// NewProxier returns a new single-stack IPTables proxier.
229217
func NewProxier(ctx context.Context,
230218
ipFamily v1.IPFamily,
231219
ipt utiliptables.Interface,
232220
sysctl utilsysctl.Interface,
233-
exec utilexec.Interface,
234221
syncPeriod time.Duration,
235222
minSyncPeriod time.Duration,
236223
masqueradeAll bool,
@@ -300,7 +287,6 @@ func NewProxier(ctx context.Context,
300287
localDetector: localDetector,
301288
hostname: hostname,
302289
nodeIP: nodeIP,
303-
recorder: recorder,
304290
serviceHealthServer: serviceHealthServer,
305291
healthzServer: healthzServer,
306292
precomputedProbabilities: make([]string, 0, 1001),

pkg/proxy/iptables/proxier_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import (
3535
"github.com/google/go-cmp/cmp"
3636
"github.com/lithammer/dedent"
3737
"github.com/stretchr/testify/assert"
38+
3839
v1 "k8s.io/api/core/v1"
3940
discovery "k8s.io/api/discovery/v1"
4041
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

pkg/proxy/ipvs/graceful_termination_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,9 @@ import (
2424
"reflect"
2525
"testing"
2626

27-
netutils "k8s.io/utils/net"
28-
2927
utilipvs "k8s.io/kubernetes/pkg/proxy/ipvs/util"
3028
utilipvstest "k8s.io/kubernetes/pkg/proxy/ipvs/util/testing"
29+
netutils "k8s.io/utils/net"
3130
)
3231

3332
func Test_GracefulDeleteRS(t *testing.T) {

pkg/proxy/ipvs/ipset.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ limitations under the License.
2020
package ipvs
2121

2222
import (
23-
"k8s.io/apimachinery/pkg/util/sets"
24-
utilversion "k8s.io/apimachinery/pkg/util/version"
25-
utilipset "k8s.io/kubernetes/pkg/proxy/ipvs/ipset"
26-
2723
"fmt"
2824
"strings"
2925

26+
"k8s.io/apimachinery/pkg/util/sets"
27+
utilversion "k8s.io/apimachinery/pkg/util/version"
3028
"k8s.io/klog/v2"
29+
utilipset "k8s.io/kubernetes/pkg/proxy/ipvs/ipset"
3130
)
3231

3332
const (

pkg/proxy/ipvs/ipset/ipset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,9 @@ type runner struct {
278278
}
279279

280280
// New returns a new Interface which will exec ipset.
281-
func New(exec utilexec.Interface) Interface {
281+
func New() Interface {
282282
return &runner{
283-
exec: exec,
283+
exec: utilexec.New(),
284284
}
285285
}
286286

pkg/proxy/ipvs/ipset/ipset_test.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ import (
2828
fakeexec "k8s.io/utils/exec/testing"
2929
)
3030

31+
func newInternal(fexec *fakeexec.FakeExec) Interface {
32+
return &runner{fexec}
33+
}
34+
3135
func TestCheckIPSetVersion(t *testing.T) {
3236
testCases := []struct {
3337
vstring string
@@ -83,7 +87,7 @@ func TestFlushSet(t *testing.T) {
8387
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
8488
},
8589
}
86-
runner := New(fexec)
90+
runner := newInternal(fexec)
8791
// Success.
8892
err := runner.FlushSet("FOOBAR")
8993
if err != nil {
@@ -119,7 +123,7 @@ func TestDestroySet(t *testing.T) {
119123
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
120124
},
121125
}
122-
runner := New(fexec)
126+
runner := newInternal(fexec)
123127
// Success
124128
err := runner.DestroySet("FOOBAR")
125129
if err != nil {
@@ -153,7 +157,7 @@ func TestDestroyAllSets(t *testing.T) {
153157
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
154158
},
155159
}
156-
runner := New(fexec)
160+
runner := newInternal(fexec)
157161
// Success
158162
err := runner.DestroyAllSets()
159163
if err != nil {
@@ -198,7 +202,7 @@ func TestCreateSet(t *testing.T) {
198202
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
199203
},
200204
}
201-
runner := New(fexec)
205+
runner := newInternal(fexec)
202206
// Create with ignoreExistErr = false, expect success
203207
err := runner.CreateSet(&testSet, false)
204208
if err != nil {
@@ -388,7 +392,7 @@ func TestAddEntry(t *testing.T) {
388392
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
389393
},
390394
}
391-
runner := New(fexec)
395+
runner := newInternal(fexec)
392396
// Create with ignoreExistErr = false, expect success
393397
err := runner.AddEntry(testCases[i].entry.String(), testCases[i].set, false)
394398
if err != nil {
@@ -437,7 +441,7 @@ func TestDelEntry(t *testing.T) {
437441
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
438442
},
439443
}
440-
runner := New(fexec)
444+
runner := newInternal(fexec)
441445

442446
err := runner.DelEntry(testCases[i].entry.String(), testCases[i].set.Name)
443447
if err != nil {
@@ -482,7 +486,7 @@ func TestTestEntry(t *testing.T) {
482486
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
483487
},
484488
}
485-
runner := New(fexec)
489+
runner := newInternal(fexec)
486490
// Success
487491
ok, err := runner.TestEntry(testEntry.String(), setName)
488492
if err != nil {
@@ -530,7 +534,7 @@ func TestTestEntryIPv6(t *testing.T) {
530534
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
531535
},
532536
}
533-
runner := New(fexec)
537+
runner := newInternal(fexec)
534538
// Success
535539
ok, err := runner.TestEntry(testEntry.String(), setName)
536540
if err != nil {
@@ -604,7 +608,7 @@ Members:
604608
},
605609
},
606610
}
607-
runner := New(fexec)
611+
runner := newInternal(fexec)
608612
// Success
609613
entries, err := runner.ListEntries("foobar")
610614
if err != nil {
@@ -643,7 +647,7 @@ baz`
643647
func(cmd string, args ...string) exec.Cmd { return fakeexec.InitFakeCmd(&fcmd, cmd, args...) },
644648
},
645649
}
646-
runner := New(fexec)
650+
runner := newInternal(fexec)
647651
// Success
648652
list, err := runner.ListSets()
649653
if err != nil {

pkg/proxy/ipvs/netlink_linux.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ import (
2323
"fmt"
2424
"net"
2525

26+
"github.com/vishvananda/netlink"
27+
"golang.org/x/sys/unix"
28+
2629
"k8s.io/apimachinery/pkg/util/sets"
2730
"k8s.io/klog/v2"
2831
proxyutil "k8s.io/kubernetes/pkg/proxy/util"
2932
netutils "k8s.io/utils/net"
30-
31-
"github.com/vishvananda/netlink"
32-
"golang.org/x/sys/unix"
3333
)
3434

3535
type netlinkHandle struct {

0 commit comments

Comments
 (0)