Commit Graph

532 Commits

Author SHA1 Message Date
Matthias Rampke
7bc6f81dd6 Generate dereferenced array of endpoints
for printing. Only do this if verbosity requires it.
2017-04-06 18:26:10 +00:00
Matthias Rampke
06ed262ff8 Restore "Setting endpoints" log message
The "Setting endpoints" message from kube-proxy at high verbosity was
lost as part of a larger simplification in kubernetes/kubernetes#42747.

This change brings it back, simply outputting the just-constructed
addresses list.
2017-04-06 15:40:52 +00:00
Kubernetes Submit Queue
bc8a7556d8 Merge pull request #43972 from thockin/fix-43969-proxy-filter-input
Automatic merge from submit-queue

kube-proxy: filter INPUT as well as OUTPUT

We need to apply filter rules on the way in (nodeports) and out (cluster
IPs).  Testing here is insufficient to have caught this - will come back
for that.

Fixes #43969

@justinsb since you have the best repro, can you test?  It passes what I think is repro.

@ethernetdan we will want this in 1.6.x

```release-note
Fix bug with service nodeports that have no backends not being rejected, when they should be.  This is not a regression vs v1.5 - it's a fix that didn't quite fix hard enough.
```
2017-04-05 23:18:29 -07:00
Tim Hockin
5e43c14098 Return healthcheck info from buildNewEndpointsMap 2017-04-05 14:23:04 -07:00
Tim Hockin
87d3f2c622 overhaul proxy healthchecks
The existing healthcheck lib was pretty complicated and was hiding some
bugs (like the count always being 1),  This is a reboot of the interface
and implementation to be significantly simpler and better tested.
2017-04-05 14:22:56 -07:00
Kubernetes Submit Queue
0f10d6ccf2 Merge pull request #43996 from ncdc/proxy-shared-informers
Automatic merge from submit-queue

Use shared informers for proxy endpoints and service configs

Use shared informers instead of creating local controllers/reflectors
for the proxy's endpoints and service configs. This allows downstream
integrators to pass in preexisting shared informers to save on memory &
cpu usage.

This also enables the cache mutation detector for kube-proxy for those
presubmit jobs that already turn it on.

Follow-up to #43295 cc @wojtek-t 

Will race with #43937 for conflicting changes 😄 cc @thockin 

cc @smarterclayton @sttts @liggitt @deads2k @derekwaynecarr @eparis @kubernetes/rh-cluster-infra
2017-04-05 06:52:25 -07:00
Tim Hockin
7664b97ed2 Add tests for kube-proxy healthcheck, fix bug
Adding test cases for HC updates found a bug with an update that
simultaneously removes one port and adds another.  Map iteration is
randomized, so sometimes no HC would be created.
2017-04-04 20:11:06 -07:00
Kubernetes Submit Queue
2db4affb9d Merge pull request #44056 from thockin/proxy-sync-reason
Automatic merge from submit-queue

add a reason code to syncProxyRules

part of async prep
2017-04-04 19:56:56 -07:00
Kubernetes Submit Queue
3fc950ee38 Merge pull request #44051 from thockin/proxy-rename-functions
Automatic merge from submit-queue

Rename functions for congruence

part of async cleanup
2017-04-04 19:14:11 -07:00
Tim Hockin
af9a5321b5 save allServices in prep for async iptables 2017-04-04 12:39:39 -07:00
Tim Hockin
92b880c2a9 add a reason code to syncProxyRules 2017-04-04 12:35:38 -07:00
Tim Hockin
099e55c284 Rename functions for congruence 2017-04-04 12:07:53 -07:00
Andy Goldstein
d2bc4d0b2e Use shared informers for proxy endpoints and service configs
Use shared informers instead of creating local controllers/reflectors
for the proxy's endpoints and service configs. This allows downstream
integrators to pass in preexisting shared informers to save on memory &
cpu usage.

This also enables the cache mutation detector for kube-proxy for those
presubmit jobs that already turn it on.
2017-04-04 12:51:41 -04:00
Tim Hockin
9a423b6c6b kube-proxy: filter INPUT as well as OUTPUT
We need to apply filter rules on the way in (nodeports) and out (cluster
IPs).  Testing here is insufficient to have caught this - will come back
for that.
2017-04-03 20:50:06 -07:00
Tim Hockin
adf30aa2e1 kube-proxy: OnServiceUpdate takes pointers
This signature is more consistent with OnEndpointsUpdate and removes a
copy loop.  This is part on ongoing cleanup to rate-limit iptables
calls.
2017-04-03 17:19:39 -07:00
Wojciech Tyczynski
142c5a963d Cleanup proxy/config 2017-03-26 11:07:36 +02:00
Wojciech Tyczynski
7ce368ccd2 Simplify proxy config for Services by removing Mux. 2017-03-26 11:07:36 +02:00
Wojciech Tyczynski
596527dafa Simplify proxy config for Endpoints by removing Mux. 2017-03-26 11:07:36 +02:00
Wojciech Tyczynski
2a6083c3e7 Avoid copying endpoints object in kube-proxy 2017-03-25 17:41:42 +01:00
Tim Hockin
2ec87999a9 Install a REJECT rule for nodeport with no backend
Rather than actually accepting the connection, REJECT.  This will avoid
CLOSE_WAIT.
2017-03-20 21:37:00 -07:00
Dan Williams
f7630f888f kube-proxy/iptables: use a type for endpoints info map 2017-03-07 13:51:58 -06:00
Dan Williams
76a7d690db kube-proxy: simplify endpoints updates
We don't need the svcPortToInfoMap.  Its only purpose was to
send "valid" local endpoints (those with valid IP and >0 port) to the
health checker.  But we shouldn't be sending invalid endpoints to
the health checker anyway, because it can't do anything with them.

If we exclude invalid endpoints earlier, then we don't need
flattenValidEndpoints().

And if we don't need flattenValidEndpoints() it makes no sense to have
svcPortToInfoMap store hostPortInfo, since endpointsInfo is the same
thing as hostPortInfo except with a combined host:port.

And if svcPortToInfoMap now only stores valid endpointsInfos, it is
exactly the same thing as newEndpoints.
2017-03-07 13:32:02 -06:00
Kubernetes Submit Queue
fda07be544 Merge pull request #42165 from wojtek-t/fix_kubeproxy_initial_bug
Automatic merge from submit-queue (batch tested with PRs 41672, 42084, 42233, 42165, 42273)

Don't sync IPtables before underlying store/reflector is fully synced

Ref #42108

Build on top of #42108 - only the second commit is unique.
2017-03-02 03:20:27 -08:00
Kubernetes Submit Queue
0796d5c0d8 Merge pull request #29465 from DirectXMan12/feature/extensible-proxysocket
Automatic merge from submit-queue

Extensible Userspace Proxy

This PR refactors the userspace proxy to allow for custom proxy socket implementations.
It changes the the ProxySocket interface to ensure that other packages can properly implement it (making sure all arguments are publicly exposed types, etc), and adds in a mechanism for an implementation to create an instance of the userspace proxy with a non-standard ProxySocket.
Custom ProxySockets are useful to inject additional logic into the actual proxying.  For example, our idling proxier uses a custom proxy socket to hold connections and notify the cluster that idled scalable resources need to be woken up.

Also-Authored-By: Ben Bennett bbennett@redhat.com
2017-03-01 09:17:29 -08:00
Kubernetes Submit Queue
44a7be98fd Merge pull request #41618 from JiangtianLi/k8swin
Automatic merge from submit-queue (batch tested with PRs 42316, 41618, 42201, 42113, 42191)

Support unqualified and partially qualified domain name in DNS query in Windows kube-proxy

**What this PR does / why we need it**:
In Windows container networking, --dns-search is not currently supported on Windows Docker. Besides, even with --dns-suffix, inside Windows container DNS suffix is not appended to DNS query names. That makes unqualified domain name or partially qualified domain name in DNS query not able to resolve.

This PR provides a solution to resolve unqualified domain name or partially qualified domain name in DNS query for Windows container in Windows kube-proxy. It uses well-known Kubernetes DNS suffix as well host DNS suffix search list to append to the name in DNS query. DNS packet in kube-proxy UDP stream is modified as appropriate.

This PR affects the Windows kube-proxy only.

**Special notes for your reviewer**:
This PR is based on top of Anthony Howe's commit 48647fb, 0e37f0a and 7e2c71f which is already included in the PR 41487. Please only review commit b9dfb69.

**Release note**:

```release-note
Add DNS suffix search list support in Windows kube-proxy.
```
2017-03-01 07:48:16 -08:00
Kubernetes Submit Queue
ef852f9301 Merge pull request #41487 from anhowe/anhowe-windowsproxy
Automatic merge from submit-queue (batch tested with PRs 42200, 39535, 41708, 41487, 41335)

Update kube-proxy support for Windows

**What this PR does / why we need it**:

The kube-proxy is built upon the sophisticated iptables NAT rules.  Windows does not have an equivalent capability.  This introduces a change to the architecture of the user space mode of the Windows version of kube-proxy to match the capabilities of Windows.

The proxy is organized around service ports and portals.  For each service a service port is created and then a portal, or iptables NAT rule, is opened for each service ip, external ip, node port, and ingress ip.  This PR merges the service port and portal into a single concept of a "ServicePortPortal" where there is one connection opened for each of service IP, external ip, node port, and ingress IP.

This PR only affects the Windows kube-proxy.  It is important for the Windows kube-proxy because it removes the limited portproxy rule and RRAS service and enables full tcp/udp capability to services.

**Special notes for your reviewer**:

**Release note**:

```
Add tcp/udp userspace proxy support for Windows.
```
2017-02-28 20:16:10 -08:00
Wojciech Tyczynski
df9cc0a59f Sync ipttables only when reflectors are fully synced 2017-02-28 16:53:03 +01:00
Jiangtian Li
b9dfb69dd7 Fix DNS suffix search list issue for Windows container and workaround in kube-proxy.
kube-proxy iterates over DNS suffix search list and appends to DNS query for client.
2017-02-27 19:25:46 -08:00
Anthony Howe
7e2c71f698 per Jenkin's test instructions run Run ./hack/update-bazel.sh 2017-02-28 02:56:09 +00:00
Anthony Howe
0e37f0a890 cleanup proxier 2017-02-27 16:00:49 -08:00
Benjamin Bennett
5447db3048 Userspace proxy should remove conntrack entries
This changes the userspace proxy so that it cleans up its conntrack
settings when a service is removed (as the iptables proxy already
does).  This could theoretically cause problems when a UDP service
as deleted and recreated quickly (with the same IP address).  As
long as packets from the same UDP source IP and port were going to
the same destination IP and port, the the conntrack would apply and
the packets would be sent to the old destination.

This is astronomically unlikely if you did not specify the IP address
to use in the service, and even then, only happens with an "established"
UDP connection.  However, in cases where a service could be "switched"
between using the iptables proxy and the userspace proxy, this case
becomes much more frequent.
2017-02-27 18:41:47 -05:00
Solly Ross
655b338256 Userspace Proxy: Keep ref to service being proxied
This commit makes the userspace proxy keep an ObjectReference to the
service being proxied.  This allows the consumers of the `ServiceInfo`
struct, like `ProxySockets` to emit events about or otherwise refer to
the service.
2017-02-27 18:41:47 -05:00
Solly Ross
f5526727fb Userspace Proxy: Expose ProxySocket utility funcs
This commit exposes several utility functions that are valuable for
implementing custom ProxySockets.
2017-02-27 18:41:47 -05:00
Solly Ross
de2285ac7b Userspace Proxy: Allow any ProxySocket in Proxier
This commit adds a new method for constructing userspace proxiers,
`NewCustomProxier`.  `NewCustomProxier` functions identically to
`NewProxier`, except that it allows a custom constructor method to
be passed in to construct instances of ProxySocket.
2017-02-27 18:41:47 -05:00
Solly Ross
43c4d7ae23 Userspace Proxy: Make ProxySocket Implementable
This commit makes it possible for the `ProxySocket` interface to be
implemented by types outside of the `userspace` package.  It mainly just
exposes relevant types and fields as public.
2017-02-27 18:41:46 -05:00
Wojciech Tyczynski
c789704e8e Switch kube-proxy to informers 2017-02-27 16:16:26 +01:00
Solly Ross
9dcf8ef344 Userspace Proxy: allow check for endpoints on svc
This commit adds a method to the `LoadBalancer` interface in the
userspace proxy which allows consumers of the `LoadBalancer` to check if
it thinks a given service has endpoints available.
2017-02-23 16:06:28 -05:00
Anthony Howe
48647fb9b5 add tcp or udp proxy for service addresses 2017-02-22 19:42:33 -08:00
Tim Hockin
1ce3395e7f Simplify stale-connection detection in kube-proxy 2017-02-15 12:39:49 -08:00
Tim Hockin
7046c7efcb Prep to move guts of OnEnpointsUpdate to sync
This makes it more obvious that they run together and makes the upcoming
rate-limited syncs easier.

Also make test use ints for ports, so it's easier to see when a port is
a literal value vs a name.
2017-02-15 10:37:05 -08:00
Tim Hockin
cddda17d42 Make healthcheck an interface 2017-02-15 10:37:05 -08:00
Tim Hockin
6069d49d49 Add tests for updateEndpoints 2017-02-15 10:37:05 -08:00
Tim Hockin
8d24fc3984 Simplify maps which had almost the exact same info 2017-02-15 10:37:05 -08:00
Tim Hockin
48ea304711 Sanitize newEndpoints semantics, remove a dup arg 2017-02-15 10:37:05 -08:00
Tim Hockin
9507af3c79 Refactor OnEndpointsUpdate for testing
This is a weird function, but I didn't want to change any semantics
until the tests are in place.  Testing exposed one bug where stale
connections of renamed ports were not marked stale.

There are other things that seem wrong here, more will follow.
2017-02-15 10:37:05 -08:00
Tim Hockin
d578105a44 Simple cleanup before refactoring 2017-02-15 10:37:05 -08:00
Tim Hockin
1c180e0865 Simplify "is local" detection
Move the feature test to where we are activating the feature, rather
than where we detect locality.  This is in service of better tests,
which is in service of less-frequent resyncing, which is going to
require refactoring.
2017-02-15 10:37:05 -08:00
Minhan Xia
572e3bebcc fix healthcheck update problem introduced by #41223 2017-02-13 12:18:42 -08:00
Minhan Xia
87fe4dca5e skip iptables sync if no endpoint changes 2017-02-10 10:03:23 -08:00
Klaus Ma
f6aa8bbb8f Updated NodeRef to clientv1.ObjectReference. 2017-02-07 06:27:06 +08:00
deads2k
8a12000402 move client/record 2017-01-31 19:14:13 -05:00
deads2k
c9a008dff3 move util/intstr to apimachinery 2017-01-30 12:46:59 -05:00
Dr. Stefan Schimanski
44ea6b3f30 Update generated files 2017-01-29 21:41:45 +01:00
Dr. Stefan Schimanski
79adb99a13 pkg/api: move Semantic equality to k8s.io/apimachinery/pkg/api/equality 2017-01-29 21:41:45 +01:00
deads2k
b0b156b381 make tools/cache authoritative 2017-01-25 08:29:45 -05:00
Dr. Stefan Schimanski
2b8e938128 Update generated files 2017-01-24 20:56:03 +01:00
Dr. Stefan Schimanski
a6b2ebb50c pkg/flag: make feature gate extensible and split between generic and kube 2017-01-24 20:56:03 +01:00
Dr. Stefan Schimanski
56d60cfae6 pkg/util: move flags from pkg/util/config to pkg/util/flags 2017-01-24 20:56:03 +01:00
deads2k
5a8f075197 move authoritative client-go utils out of pkg 2017-01-24 08:59:18 -05:00
Clayton Coleman
9009c1ac14
generated: informer,client 2017-01-23 17:52:47 -05:00
Clayton Coleman
469df12038
refactor: move ListOptions references to metav1 2017-01-23 17:52:46 -05:00
deads2k
11e8068d3f move pkg/fields to apimachinery 2017-01-19 09:50:16 -05:00
deads2k
c47717134b move utils used in restclient to client-go 2017-01-19 07:55:14 -05:00
Clayton Coleman
9a2a50cda7
refactor: use metav1.ObjectMeta in other types 2017-01-17 16:17:19 -05:00
Dan Williams
5907639140 proxy/iptables: clean up service map creation
Instead of copying the map, like OnServicesUpdate() used to do and which
was copied into buildServiceMap() to preserve semantics while creating
testcases, start with a new empty map and do deletion checking later.
2017-01-11 15:17:55 -06:00
Dan Williams
6aa784e6f2 proxy/iptables: don't sync proxy rules if services map didn't change 2017-01-11 14:46:12 -06:00
Dan Williams
433f6830f8 proxy/iptables: don't proxy ExternalName services
The API docs say:

	// ServiceTypeExternalName means a service consists of only a reference to
	// an external name that kubedns or equivalent will return as a CNAME
	// record, with no exposing or proxying of any pods involved.

which implies that ExternalName services should be ignored for proxy
purposes.
2017-01-11 14:46:12 -06:00
Dan Williams
eae2b8e9ba proxy/iptables: split out service map creation and add testcases 2017-01-11 14:46:12 -06:00
deads2k
6a4d5cd7cc start the apimachinery repo 2017-01-11 09:09:48 -05:00
Jeff Grafton
20d221f75c Enable auto-generating sources rules 2017-01-05 14:14:13 -08:00
Mike Danese
161c391f44 autogenerated 2016-12-29 13:04:10 -08:00
Kubernetes Submit Queue
ff8e8c6778 Merge pull request #38920 from k82cn/k8s_37979
Automatic merge from submit-queue

Add event when failed to open local port.

fixes #37979 .
2016-12-22 21:32:27 -08:00
Klaus Ma
b0dfa4ad47 Add event when failed to open local port. 2016-12-23 04:51:12 +08:00
Brendan Burns
47b79de76e Refactor port allocation logic a little, deflake tests. 2016-12-18 21:18:34 -08:00
Chun Chen
0da1573169 Raise a warning instead of info if br-netfilter is missing or unset 2016-12-14 18:27:58 +08:00
Dan Winship
d95181fa1e Port iptables code to pkg/util/version, don't use semvers 2016-12-13 08:53:04 -05:00
Mike Danese
c87de85347 autoupdate BUILD files 2016-12-12 13:30:07 -08:00
Kubernetes Submit Queue
4fb21c8409 Merge pull request #37429 from andrewsykim/fix-kube-proxy-node-ip-warning
Automatic merge from submit-queue (batch tested with PRs 35884, 37305, 37369, 37429, 35679)

fix mixleading warning message regarding kube-proxy nodeIP initializa…

The current warning message implies that the operator should restart kube-proxy with some flag related to node IP which can be very misleading.
2016-12-08 03:55:17 -08:00
Kubernetes Submit Queue
08c0f7dded Merge pull request #27711 from xiangpengzhao/port-allocator-test
Automatic merge from submit-queue

Cover port_allocator_test with more conditions

The test cases of port_allocator_test should cover more conditions, such as `rangeAllocator.used.Bit`.
2016-12-07 12:14:36 -08:00
Eric Paris
78798f6191 Remove girishkalele from most places
This also updates the maintainers list and reassigns his tests
2016-12-05 19:29:34 -05:00
Kubernetes Submit Queue
6abb472357 Merge pull request #37720 from freehan/lb-src-update
Automatic merge from submit-queue

Fix Service Update on LoadBalancerSourceRanges Field

Fixes: https://github.com/kubernetes/kubernetes/issues/33033
Also expands: https://github.com/kubernetes/kubernetes/pull/32748
2016-12-01 18:21:39 -08:00
Kubernetes Submit Queue
9defe2ce99 Merge pull request #32561 from zreigz/fix-incoming-udp
Automatic merge from submit-queue

Bug fix. Incoming UDP packets not reach newly deployed services

**What this PR does / why we need it**:

Incoming UDP packets not reach newly deployed services when old connection's state in conntrack is not cleared. When a packet arrives, it will not go through NAT table again, because it is not "the first" packet. The PR fix the issue

**Which issue this PR fixes** 
Fixes #31983
xref https://github.com/docker/docker/issues/8795
2016-12-01 16:02:03 -08:00
Kubernetes Submit Queue
5c2117764b Merge pull request #36055 from m1093782566/m109-fix-proxy-hasjump
Automatic merge from submit-queue

[kube-proxy] Fix Jump() bug in pkg/proxy/iptables/proxier_test.go

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**Which issue this PR fixes**

Fixes #36043
2016-12-01 06:31:27 -08:00
Lukasz Zajaczkowski
dc54a8d46e Bug fix. Incoming UDP packets not reach newly deployed services 2016-12-01 08:52:30 +01:00
Minhan Xia
1c2c0c1f63 support service loadBalancerSourceRange update 2016-11-30 15:27:34 -08:00
Kubernetes Submit Queue
8a99f17f24 Merge pull request #37454 from xiaolou86/close-channel
Automatic merge from submit-queue

fix bug of closing the same channel multiple times

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->


**Which issue this PR fixes**: fixes #37444 

**Release note**:None
2016-11-30 08:43:51 -08:00
Kubernetes Submit Queue
919dfc4211 Merge pull request #36523 from apelisse/owners-pkg-proxy
Automatic merge from submit-queue

Curating Owners: pkg/proxy

cc @thockin

In an effort to expand the existing pool of reviewers and establish a
two-tiered review process (first someone lgtms and then someone
experienced in the project approves), we are adding new reviewers to
existing owners files.


If You Care About the Process:
------------------------------

We did this by algorithmically figuring out who’s contributed code to
the project and in what directories.  Unfortunately, that doesn’t work
well: people that have made mechanical code changes (e.g change the
copyright header across all directories) end up as reviewers in lots of
places.

Instead of using pure commit data, we generated an excessively large
list of reviewers and pruned based on all time commit data, recent
commit data and review data (number of PRs commented on).

At this point we have a decent list of reviewers, but it needs one last
pass for fine tuning.

Also, see https://github.com/kubernetes/contrib/issues/1389.

TLDR:
-----

As an owner of a sig/directory and a leader of the project, here’s what
we need from you:

1. Use PR https://github.com/kubernetes/kubernetes/pull/35715 as an example.

2. The pull-request is made editable, please edit the `OWNERS` file to
remove the names of people that shouldn't be reviewing code in the
future in the **reviewers** section. You probably do NOT need to modify
the **approvers** section. Names asre sorted by relevance, using some
secret statistics.

3. Notify me if you want some OWNERS file to be removed.  Being an
approver or reviewer of a parent directory makes you a reviewer/approver
of the subdirectories too, so not all OWNERS files may be necessary.

4. Please use ALIAS if you want to use the same list of people over and
over again (don't hesitate to ask me for help, or use the pull-request
above as an example)
2016-11-28 11:42:49 -08:00
LouZhengwei
9fe0b88f92 fix bug of closing the same channel multiple times 2016-11-24 23:41:48 +08:00
andrewsykim
439ab5a487 fix mixleading warning message regarding kube-proxy nodeIP initialization 2016-11-24 01:35:45 -05:00
Chao Xu
bcc783c594 run hack/update-all.sh 2016-11-23 15:53:09 -08:00
Chao Xu
b9e3ffb515 misc 2016-11-23 15:53:09 -08:00
Kubernetes Submit Queue
ddf5888da4 Merge pull request #35681 from vincentheet/issue-35677
Automatic merge from submit-queue

Change stickyMaxAge from seconds to minutes, fixes issue #35677

**What this PR does / why we need it**: Increases the service sessionAfinity time from 180 seconds to 180 minutes for proxy mode iptables which was a bug introduced in a refactor.

**Which issue this PR fixes**: fixes #35677

**Special notes for your reviewer**: 

**Release note**:

``` release-note
Fixed wrong service sessionAffinity stickiness time from 180 sec to 180 minutes in proxy mode iptables.
```

Since there is no test for the sessionAffinity feature at the moment I wanted to create one but I don't know how.
2016-11-22 10:35:36 -08:00
m1093782566
315c8359cf fix proxier_test.go hasJump() 2016-11-17 10:31:48 +08:00
Mandar U Jog
3fdc343a98 Handle Empty clusterCIDR
Empty clusterCIDR causes invalid rules generation.
Fixes issue #36652
2016-11-15 14:34:25 -08:00
Tim Hockin
19dd9c1271 Reduce to folks with context 2016-11-15 08:51:12 +01:00
Tim Hockin
1aeecd7847 Reduce to people with context 2016-11-15 08:50:14 +01:00
Tim Hockin
5bcaa09a5a Trim to folks with context 2016-11-15 08:49:30 +01:00
Tim Hockin
4caa6e0b78 Trim down to the folks I think have real context 2016-11-15 08:48:31 +01:00
Antoine Pelisse
40a8574b0a Update OWNERS 2016-11-09 14:37:31 -08:00
Antoine Pelisse
cbbf366f1f Update OWNERS approvers and reviewers: pkg/proxy 2016-11-09 10:17:55 -08:00
Kubernetes Submit Queue
c52efa570d Merge pull request #36079 from apprenda/windows_kube_proxy
Automatic merge from submit-queue

Add Windows support to kube-proxy

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:
This is the first stab at supporting kube-proxy (userspace mode) on Windows

**Which issue this PR fixes** : 
fixes #30278

**Special notes for your reviewer**:
The MVP uses `netsh portproxy` to redirect traffic from `ServiceIP:ServicePort` to a `LocalIP:LocalPort`. 
For the next version we are expecting to have guidance from Microsoft Container Networking team.

**Limitations**:
Current implementation does not support DNS queries over UDP as `netsh portproxy` currently only supports TCP. We are working with Microsoft to remediate this.

cc: @brendandburns @dcbw 

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
```
2016-11-09 01:26:27 -08:00
Paulo Pires
562d0756ef
Fixed copyright headers. 2016-11-07 09:18:07 +00:00
Paulo Pires
acf3f368bc
Added new userspace proxy mode specifically for Windows. 2016-11-07 09:11:35 +00:00
Zihong Zheng
55f75c37f7 Default to the old behavior for proxier sync. 2016-11-06 22:45:53 -08:00
Timothy St. Clair
2b012e822a Add minimum iptables sync period to the proxy, default is 2/sec 2016-11-04 00:38:35 -05:00
xiangpengzhao
513b346bb7 Log portal IP in error info. 2016-11-01 05:26:16 -04:00
Vincent Heet
528bc97dd3 Change stickyMaxAge from seconds to minutes, fixes issue #35677 2016-10-27 09:56:17 +02:00
Mike Danese
3b6a067afc autogenerated 2016-10-21 17:32:32 -07:00
bprashanth
a46a849b9e Promote source ip annotations to beta 2016-10-19 13:39:37 -07:00
bprashanth
5cb8e8e1d6 Fix health check node port leak 2016-10-19 13:39:37 -07:00
bprashanth
06cbb36a1f Proxier unittests 2016-09-29 17:35:43 -07:00
bprashanth
93f9b54cab NodePorts understand OnlyLocal 2016-09-29 17:35:43 -07:00
Girish Kalele
d3a1510e02 Fix kube-proxy logic to change iptables chains when ESIPP is turned on or off 2016-09-06 11:04:36 -07:00
Angus Salkeld
f785f3d3ef Clean up IPTables caps i.e.: sed -i "s/Iptables/IPTables/g" 2016-08-29 10:34:42 +10:00
Kubernetes Submit Queue
ecf24101d3 Merge pull request #31485 from m1093782566/m109-proxy-fix-naming
Automatic merge from submit-queue

[kube-proxy] Fix naming errors and sentence breaking in pkg/proxy/healthcheck

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:

addresses #31484 

@girishkalele
2016-08-26 01:53:24 -07:00
m1093782566
e16e5c4fec fix naming error and sentence breaking in pkg/proxy/healthcheck
Change-Id: Iee36ff4e497052f473f95f8f0a92421d85e3c416
2016-08-26 10:39:56 +08:00
Kubernetes Submit Queue
189a870ec8 Merge pull request #30376 from justinsb/kubenet_mtu
Automatic merge from submit-queue

Add kubelet --network-plugin-mtu flag for MTU selection

* Add network-plugin-mtu option which lets us pass down a MTU to a network provider (currently processed by kubenet)
* Add a test, and thus make sysctl testable
2016-08-23 21:54:50 -07:00
Girish Kalele
b82c028f77 GCE Cloud provider changes for ESIPP
Add feature gate (ExternalTrafficLocalOnly) for alpha feature
2016-08-23 16:16:39 -07:00
xiangpengzhao
9ef7475c12 Cover port_allocator_test with more conditions 2016-08-23 05:19:44 -04:00
Justin Santa Barbara
2c103af2b6 Create testable implementation of sysctl
This is so we can test kubenet Init, which calls sysctl
2016-08-23 01:42:37 -04:00
Minhan Xia
ec5699e451 clean up oldIptablesMasqueradeMark 2016-08-22 15:05:13 -07:00
Girish Kalele
282880f549 Code review changes 2016-08-20 19:49:30 -07:00
Girish Kalele
29188c68d5 Load Balancer Health Check responder library for ESIPP 2016-08-20 19:45:56 -07:00
Minhan Xia
392a92c9fa change KUBE-XLB back to KUBE-FW 2016-08-18 10:19:59 -07:00
Minhan Xia
b31874fe82 bug fixes and nits 2016-08-18 10:19:59 -07:00
Minhan Xia
1acaa1db09 Revert "Revert "syncNetworkUtil in kubelet and fix loadbalancerSourceRange on GCE"" 2016-08-18 10:19:48 -07:00
Daniel Smith
2aa0bb2dfc Revert "syncNetworkUtil in kubelet and fix loadbalancerSourceRange on GCE" 2016-08-16 18:12:28 -07:00
Minhan Xia
643fc3803b add firewall chain to filter request based on loadbalancer source range 2016-08-15 17:42:41 -07:00
Girish Kalele
5d6abf59ff kube-proxy: Propagate hostname to iptables proxier 2016-08-09 10:05:29 -07:00
Lucas Käldström
c88a07ce1a Run goimports 2016-08-02 15:12:39 +03:00
Michal Rostecki
59ca5986dd Print/log pointers of structs with %#v instead of %+v
There are many places in k8s where %+v is used to format a pointer
to struct, which isn't working as expected.

Fixes #26591
2016-08-01 22:27:56 +02:00
Davanum Srinivas
2b0ed014b7 Use Go canonical import paths
Add canonical imports only in existing doc.go files.
https://golang.org/doc/go1.4#canonicalimports

Fixes #29014
2016-07-16 13:48:21 -04:00
k8s-merge-robot
04602bb9e5 Merge pull request #28655 from freehan/kubeproxyfix
Automatic merge from submit-queue

Don't delete affinity when endpoints are empty

closes: #25316
2016-07-08 11:28:43 -07:00
Minhan Xia
e1df5c8b30 fix proxy unit tests 2016-07-07 17:43:22 -07:00
k8s-merge-robot
3895cede49 Merge pull request #28434 from thockin/br-netfilter-warning
Automatic merge from submit-queue

Remove br_netfilter warning in kube-proxy

Many distros have this module linked in, generating a spurious error.

Fixes #23385
2016-07-07 10:27:20 -07:00
bin liu
426fdc431a Merge branch 'master' into fix-typos 2016-07-04 11:20:47 +08:00
Tim Hockin
04d60ddab0 Remove br_netfilter warning in kube-proxy
Many distros have this module linked in, generating a spurious error.
2016-07-03 09:54:26 -07:00
Minhan Xia
51dcff40e6 Merge remote-tracking branch 'thockin/userspace-proxy-affinity-25314' into kubeproxyfix 2016-07-01 11:48:02 -07:00
David McMahon
ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
bin liu
fd27cd47f7 fix some typos
Signed-off-by: bin liu <liubin0329@gmail.com>
2016-06-22 18:14:26 +08:00
Minhan Xia
6a3ad1d66d add hostport support for kubenet 2016-05-22 22:18:58 -07:00
k8s-merge-robot
f9b8fd0c96 Merge pull request #25011 from zhouhaibing089/addclose
Automatic merge from submit-queue

followup to add http server close method

Fixes #25009, a follow up of https://github.com/kubernetes/kubernetes/pull/24595.
2016-05-09 22:32:02 -07:00
Tim Hockin
9052eddaf6 Don't delete affinity when endpoints are empty
This only affects the userspace kube-proxy.
2016-05-07 21:23:50 -07:00
zhouhaibing089
5923fd352e followup to add http server close method 2016-05-05 12:04:41 +08:00
Gao Zheng
c75cb94be6 Squashed commit of the following:
commit 7bf1a05f61b78196c8d272e0d55980ba2254e81d
Author: gaozheng <gaozheng0123@163.com>
Date:   Thu Apr 28 01:23:42 2016 +0000

    fix gofmt

commit 54f6fa6ca76ee0fc5c4f8609fb2f875111ce2141
Author: Gao Zheng <gaozheng0123@163.com>
Date:   Sat Apr 23 13:09:41 2016 +0000

    reset session affinity if endpoint is unconnected
2016-05-03 01:36:32 +00:00
Clayton Coleman
fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
Minhan Xia
0d36dc7000 added test for revertPorts 2016-04-26 14:23:06 -07:00
Minhan Xia
56ad718008 only close new ports upon iptables-restore failure 2016-04-26 14:23:06 -07:00
goltermann
dddc6cb6c8 Fix a few spellings. 2016-04-21 15:16:42 -07:00
k8s-merge-robot
767fa6913d Merge pull request #24118 from smarterclayton/proxy_args
Automatic merge from submit-queue

Allow Proxy to be initialized with store
2016-04-21 04:42:43 -07:00