Bug 1313910

Summary: [DOCS] Lack of information on NodePorts
Product: OpenShift Container Platform Reporter: Eric Jones <erjones>
Component: DocumentationAssignee: Gaurav Nelson <gnelson>
Status: CLOSED CURRENTRELEASE QA Contact: zhou ying <yinzhou>
Severity: medium Docs Contact: Vikram Goyal <vigoyal>
Priority: high    
Version: 3.1.0CC: aos-bugs, ccoleman, erich, erjones, jkaur, jokerman, knakayam, mmccomas, nicholas_schuetz, pcameron
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: 3.7-release-plan
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-10-26 01:11:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Eric Jones 2016-03-02 15:22:46 UTC
Document URL: 
N/A

Section Number and Name: 
N/A

Describe the issue: 
In bug #: 1287471 the below was suggested for opening up ports beyond HTTP(s):

Our recommendation is to use Service NodePorts with the product today for this function.  Our documentation should describe how to make service node ports HA by leveraging the same mechanisms the routers use to be HA.

However, I cannot seem to find the documentation that could be used to accomplish that goal.

Suggestions for improvement: 
Create this documentation.

Comment 1 Eric Jones 2016-03-07 16:27:38 UTC
Bug number 1303232 was closed in favor of 1287471

They both make some reference to using nodePorts to achieve the goal of using non-HTTP(s) routing and they both suggest that the documentation should exist on how to do this.

@Clayton, as you made these suggestions, can you help create this documentation?

Comment 4 Gaurav Nelson 2017-09-12 02:08:51 UTC
Updated the docs to include the example provided in attached solution. Please review the changes in PR https://github.com/openshift/openshift-docs/pull/5237

Comment 5 Gaurav Nelson 2017-09-18 02:08:12 UTC
Hello Eric, can you please review this PR?

Comment 7 Phil Cameron 2017-09-19 17:05:11 UTC
erjones I am not sure what you would like to achieve with HA and node ports. The nodeport is bound to the service on every node in the cluster. So if you can get traffic to any node in the cluster it will go the service which will load balance it to some endpoint.

Comment 10 Phil Cameron 2017-09-29 12:54:32 UTC
See: https://docs.openshift.com/container-platform/3.6/dev_guide/getting_traffic_into_cluster.html

This should have what you need. If not add the info there.

HA is different for routers and services. 

Routers run on specific nodes in the cluster and external network admins must get the desired traffic to the node that is running the router. To make this high availability we increase the router replicas and use ipfailover to make a virtual IP (VIP) land on one of the nodes that is running a router replica. The external admin must get traffic to the VIP. The VIP will be on a node with a router.

For services, the nodeport is listening on all nodes in the cluster. The service will have multiple endpoints (typically the DC or RC has replicas > 1) If you manage to get traffic to any of the nodes in the cluster the nodeport will connect and traffic will go to one of the endpoints.

Comment 12 Clayton Coleman 2017-10-17 07:41:55 UTC
The V1 docs (referenced above) are out of date.  I would expect NodePort to scale at least as high as anything except dedicated routing and switching technology or hardware assisted routing, but you'll need to have a layer in front to ensure traffic reaches the appropriate nodes (whether that's a TCP load balancer, ECMP routing, etc).  I commented on the Pr

Comment 13 Gaurav Nelson 2017-10-19 01:26:10 UTC
Thanks Clayton, I have updated the PR to include information provided.

Comment 14 zhou ying 2017-10-19 05:43:47 UTC
 Gaurav Nelson:

   The PR LGTM, will verify this issue.

Comment 15 openshift-github-bot 2017-10-23 05:11:30 UTC
Commit pushed to master at https://github.com/openshift/openshift-docs

https://github.com/openshift/openshift-docs/commit/e1cff0c7001bc328d7aa6e87d315668666ff5d8f
Merge pull request #5237 from gaurav-nelson/Bug1313910Fixes

Bug#1313910 fixes - added information on nodePorts