Bug 1326067 - default service implementation of "iptables" has a feature regression on "load balancing"
Summary: default service implementation of "iptables" has a feature regression on "loa...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Networking
Version: 3.1.0
Hardware: Unspecified
OS: Unspecified
medium
low
Target Milestone: ---
: ---
Assignee: Dan Winship
QA Contact: Meng Bo
URL:
Whiteboard:
Depends On:
Blocks: 1267746
TreeView+ depends on / blocked
 
Reported: 2016-04-11 17:26 UTC by Erik M Jacobs
Modified: 2018-03-27 09:52 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-06-22 21:10:43 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Erik M Jacobs 2016-04-11 17:26:38 UTC
The userspace kube-proxy implementation provided a feature where, if an endpoint did not successfully connect, kube-proxy would "roll over" to another endpoint.

The iptables implementation of the service layer is now the default and, while it offers higher performance, it is incapable of providing this feature.

* There are documentation implications because people may not understand that this change in implementations occurred, and may not understand why things are not behaving as they once were.

* There is a documentation issue in that selecting the userspace implementation is in the installer but is undocumented.

* Understanding the implications of using one mechanism versus the other need to be documented as well. kube-proxy acts like much more of a traditional load balancer than the iptables implementation because of the retry feature.

* Understanding how all of this is related to probes (specifically liveness) as well as node timeouts/evictions/etc. is also important.

Comment 1 Ben Bennett 2016-04-12 14:23:32 UTC
This is a documentation issue... we'll clarify the 3.2 docs to cover the choices, the pros and cons, and how to flip.

Comment 2 Dan Winship 2016-04-19 13:55:30 UTC
Notes:
  - filed a docs bug upstream:
    https://github.com/kubernetes/kubernetes.github.io/pull/401

  - ansible var: openshift_node_proxy_mode, which can be 'iptables'
    (the default) or 'userspace'. (In theory this is a per-node
    configuration variable, but in practice you need to use the same
    value cluster-wide. So I think, in ansible terms, that means you'd
    set it in the [OSEv3:vars] section, not the [nodes] section? But
    I've never used ansible...)

  - node-config.yaml:
      proxyArguments:
        proxy-mode:
        - userspace

Comment 3 Dan Winship 2016-04-19 13:56:51 UTC
also, upstream (non-docs) bug: https://github.com/kubernetes/kubernetes/issues/24322

Comment 4 Dan Winship 2016-04-26 14:22:26 UTC
Filed https://github.com/openshift/openshift-docs/pull/1948


Note You need to log in before you can comment on or make changes to this bug.