From a11abb54759919c07b0c0f363be07a80d1eb9a72 Mon Sep 17 00:00:00 2001 From: Andrew Sy Kim Date: Fri, 11 Dec 2020 10:16:11 -0500 Subject: [PATCH] kube-proxy: ipvs proxy should ignore endpoints with condition ready=false Signed-off-by: Andrew Sy Kim --- pkg/proxy/ipvs/proxier.go | 5 +++++ pkg/proxy/ipvs/proxier_test.go | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index d5f281ed5b0..8cd48ad236b 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -2042,9 +2042,14 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode } for _, epInfo := range endpoints { + if !epInfo.IsReady() { + continue + } + if onlyNodeLocalEndpoints && !epInfo.GetIsLocal() { continue } + newEndpoints.Insert(epInfo.String()) } diff --git a/pkg/proxy/ipvs/proxier_test.go b/pkg/proxy/ipvs/proxier_test.go index 7c23e028f2e..e5d8c44cf0b 100644 --- a/pkg/proxy/ipvs/proxier_test.go +++ b/pkg/proxy/ipvs/proxier_test.go @@ -4256,6 +4256,10 @@ func TestEndpointSliceE2E(t *testing.T) { Addresses: []string{"10.0.1.3"}, Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, Topology: map[string]string{"kubernetes.io/hostname": "node3"}, + }, { // not ready endpoints should be ignored + Addresses: []string{"10.0.1.4"}, + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)}, + Topology: map[string]string{"kubernetes.io/hostname": "node3"}, }}, }