Skip to content
This repository was archived by the owner on Aug 29, 2018. It is now read-only.

Commit e52416e

Browse files
author
OpenShift Bot
committed
Merge pull request #6302 from Miciah/routing-daemon-README.md-fixes
Merged by openshift-bot
2 parents cacbbf9 + bd7285d commit e52416e

1 file changed

Lines changed: 73 additions & 28 deletions

File tree

routing-daemon/README.md

Lines changed: 73 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Exactly one routing module must be enabled. A module for F5 BIG-IP LTM, a
1919
module for an routing implementing the LBaaS REST API, and a module that
2020
configures nginx as a reverse proxy are included in this repository. Edit
2121
`/etc/openshift/routing-daemon.conf` to set the `LOAD_BALANCER` setting to "f5",
22-
"lbaas", or "nginx" and then following the appropriate module-specific
22+
"lbaas", or "nginx", and then follow the appropriate module-specific
2323
configuration described below.
2424

2525
Internally, the routing daemon logic is divided into controllers, which
@@ -44,27 +44,46 @@ Using F5 BIG-IP LTM
4444
-------------------
4545

4646
Edit `/etc/openshift/routing-daemon.conf` to set the appropriate values for
47-
`BIGIP_HOST`, `BIGIP_USERNAME`, `BIGIP_PASSWORD`, `BIGIP_MONITOR`,
48-
`BIGIP_SSHKEY`, `VIRTUAL_SERVER`, and `VIRTUAL_HTTPS_SERVER` to match your F5
49-
BIG-IP LTM configuration.
47+
`BIGIP_HOST`, `BIGIP_USERNAME`, `BIGIP_PASSWORD`, `BIGIP_SSHKEY`,
48+
`BIGIP_DEVICE_GROUP`, `VIRTUAL_SERVER`, and `VIRTUAL_HTTPS_SERVER` to match your
49+
F5 BIG-IP LTM configuration.
5050

5151
F5 BIG-IP LTM must be configured with two virtual servers, one for HTTP traffic
52-
and one for HTTPS traffic. Each virtual server needs to be assigned at least
53-
one VIP. A default client-ssl profile must also be configured as the default
54-
SNI client-ssl profile. Although the naming of the default client-ssl profile
55-
is unimportant, it does need to be added to the HTTPS virtual server. The LTM
56-
admin user's 'Terminal Access' must be set to 'Advanced shell' so that remote
57-
bash commands may be executed. Additionally, for the remote key management
58-
commands to execute, the `BIGIP_SSHKEY` public key must be added to the LTM
59-
admin's `.ssh/authorized_keys` file. The daemon will automatically create pools
60-
and associated local-traffic policy rules, add these profiles to the virtual
61-
servers, add members to the pools, delete members from the pools, and delete
62-
empty pools and unused policy rules when appropriate. Once the LTM virtual
63-
servers have been created, update `VIRTUAL_SERVER` and `VIRTUAL_HTTPS_SERVER`
64-
in `/etc/openshift/routing-daemon.conf` to match the names you've used. The
65-
daemon will name the pools after applications following the template
66-
"/Common/ose-#{app_name}-#{namespace}" and create policy rules to forward
67-
requests to pools comprising the gears of the named application.
52+
and one for HTTPS traffic. Each virtual server needs to be assigned at least one
53+
VIP. It is not necessary that each virtual server have a unique VIP; the HTTP
54+
virtual server and the HTTPS virtual servers may share a VIP. Once the LTM
55+
virtual servers have been created, update `VIRTUAL_SERVER` and
56+
`VIRTUAL_HTTPS_SERVER` in `/etc/openshift/routing-daemon.conf` to match the
57+
names you have used.
58+
59+
A default client-ssl profile must also be configured as the default SNI
60+
client-ssl profile. Although the naming of the default client-ssl profile is
61+
unimportant, it does need to be added to the HTTPS virtual server.
62+
63+
The LTM "admin" user's 'Terminal Access' must be set to 'Advanced shell' so that
64+
remote shell commands may be executed. Additionally, for the remote key
65+
management commands to execute, the `BIGIP_SSHKEY` public key must be added to
66+
the "admin" user's `.ssh/authorized_keys` file.
67+
68+
If you configure F5 BIG-IP LTM with a device group, use the `BIGIP_DEVICE_GROUP`
69+
to specify the name of this device group. If this setting is specified, the
70+
daemon will synchronize the device group at the interval specified by the
71+
`UPDATE_INTERVAL` interval, or the default value of 5 if `UPDATE_INTERVAL` is
72+
left unset.
73+
74+
On initialization, the daemon will create a local-traffic policy named
75+
"openshift_application_aliases" and add it to the HTTP and HTTP virtual servers
76+
if such a policy does not already exist.
77+
78+
As it runs, the daemon will automatically create pools and associated policy
79+
rules for applications, add and manage policy rules and SSL certificates and
80+
keys for aliases, add members to the pools, delete members from the pools, and
81+
delete empty pools and unused policy rules when appropriate. The daemon will
82+
create the pools in the "/Common" partition; see "Pool and Route Names" below
83+
regarding pool names. The daemon will also create rules in the
84+
"openshift_application_aliases" policy to forward requests to pools comprising
85+
the proxy gears of the respective applications based on the "Host:" header of
86+
incoming HTTP requests.
6887

6988
Using LBaaS
7089
-----------
@@ -79,11 +98,18 @@ Using nginx
7998
-----------
8099

81100
Edit `/etc/openshift/routing-daemon.conf` to set the appropriate values for
82-
`NGINX_CONFDIR` and `NGINX_SERVICE`.
101+
`NGINX_CONFDIR`, `NGINX_SERVICE`, `NGINX_SSL_CERTIFICATE`, `NGINX_SSL_KEY`,
102+
`HTTP_PORT`, and `SSL_PORT`.
83103

84-
The daemon will automatically create and manage `server.conf` and `pool_*.conf`
85-
files under the directory specified by `NGINX_CONFDIR`. After each update, the
86-
daemon will reload the service specified by `NGINX_SERVICE`.
104+
The daemon will automatically create and manage configuration files under the
105+
directory specified by `NGINX_CONFDIR`: a `server.conf` file with the frontend
106+
server configuration for all applications, `pool_*.conf` files with the backend
107+
configuration, `alias_*_.conf` files for application aliases, and `*.key` and
108+
`*.crt` files for application aliases and custom SSL certificates. The
109+
`NGINX_SSL_CERTIFICATE` and `NGINX_SSL_KEY` settings specify default SSL
110+
configuration for applications. `HTTP_PORT` and `SSL_PORT` specify the nginx
111+
listen ports. After each update, the daemon will reload the service specified
112+
by `NGINX_SERVICE`.
87113

88114

89115
Pool and Route Names
@@ -111,9 +137,9 @@ unspecified to disable the monitor functionality.
111137
Set `MONITOR_UP_CODE` to the code that indicates that a pool member is up, or
112138
leave `MONITOR_UP_CODE` unset to use the default value of "1".
113139

114-
Set `MONITOR_TYPE` to either "http-ecv" or "https-ecv" depending on whether you
115-
want to use HTTP or HTTPS for the monitor, leave `MONITOR_TYPE` unset to use the
116-
default value of "http-ecv".
140+
Set `MONITOR_TYPE` to either "http-ecv" or "https-ecv", depending on whether you
141+
want to use HTTP or HTTPS for the monitor, or leave `MONITOR_TYPE` unset to use
142+
the default value of "http-ecv".
117143

118144
Set `MONITOR_INTERVAL` to the interval at which the monitor will send requests,
119145
or leave `MONITOR_INTERVAL` unset to use the default value of "10".
@@ -131,9 +157,28 @@ existing monitor.
131157
It is expected that for each pool member, the load balancer will send a `GET`
132158
request to the resource identified on that host by the value of `MONITOR_PATH`
133159
for the associated monitor, and that the host will respond with the value of
134-
`MONITOR_UP_CODE` if the host is up or some other response if the host is not
160+
`MONITOR_UP_CODE` if the host is up, or some other response if the host is not
135161
up.
136162

163+
Endpoint Types
164+
--------------
165+
166+
By default, the routing daemon adds only proxy gears to pools. Specifically,
167+
the routing daemon ignores any gear endpoints that do not have the
168+
"load_balancer" type. These "load_balancer" endpoints are the endpoints for
169+
HAProxy gears. Thus, requests coming into the external load-balancer (nginx or
170+
F5 BIG-IP) will be routed through applications' HAProxy gears to reach the
171+
application gears.
172+
173+
Routing requests through HAProxy gears enables the auto-scaling logic to react
174+
to changes in load. However, because only scalable applications have HAProxy
175+
gears, this approach also means that only scalable applications can be reached
176+
through the external load-balancer.
177+
178+
The `ENDPOINT_TYPES` setting specifies which gear or endpoint types the routing
179+
daemon will add to pools. This setting is provided for flexibility, but it is
180+
not recommended to change it from the default value of "load_balancer".
181+
137182
##Notice of Export Control Law
138183

139184
This software distribution includes cryptographic software that is subject to the U.S. Export Administration Regulations (the "*EAR*") and other U.S. and foreign laws and may not be exported, re-exported or transferred (a) to any country listed in Country Group E:1 in Supplement No. 1 to part 740 of the EAR (currently, Cuba, Iran, North Korea, Sudan & Syria); (b) to any prohibited destination or to any end user who has been prohibited from participating in U.S. export transactions by any federal agency of the U.S. government; or (c) for use in connection with the design, development or production of nuclear, chemical or biological weapons, or rocket systems, space launch vehicles, or sounding rockets, or unmanned air vehicle systems.You may not download this software or technical information if you are located in one of these countries or otherwise subject to these restrictions. You may not provide this software or technical information to individuals or entities located in one of these countries or otherwise subject to these restrictions. You are also responsible for compliance with foreign law requirements applicable to the import, export and use of this software and technical information.

0 commit comments

Comments
 (0)