2017-06-20 14 views

回答

3

oc set env dc/router ROUTER_TCP_BALANCE_SCHEME=roundrobin將更改haproxy對剛通過的路由使用的負載均衡算法(默認值爲source)。 ROUTER_LOAD_BALANCE_ALGORITHM將更改它終止TLS的路由(默認爲我們leastconn)。

有關更改haproxy如何在OCP 3.5 docs中工作的內部信息。

+2

另請參閱路由特定註釋以覆蓋特定路由而非整個代理配置。 https://docs.openshift.com/container-platform/3.5/architecture/core_concepts/routes.html#route-specific-annotations –

+0

我還定製了添加選項:oc set env dc/spring-boot-samples ROUTER_TCP_BALANCE_SCHEME = roundrobin ROUTER_LOAD_BALANCE_ALGORITHM = ROUNDROBIN –

2

對於後人,因爲我有同樣的問題,我想記錄我使用的解決方案,從Graham Dumpleton的優秀評論。

事實證明,在第一個請求中設置了一個cookie,用於將後續請求重定向到相同的後端。要在每個路由禁用此行爲:

oc annotate routes myroute haproxy.router.openshift.io/disable_cookies='true' 

這可以防止設置cookie並允許平衡算法來選擇適當的後端來自同一客戶端的後續請求。要更改平衡算法:

oc annotate routes myroute haproxy.router.openshift.io/balance='roundrobin' 

隨着設置這兩個註解,來自同一客戶端IP地址的請求被一遍又一遍地發送到反過來每個後端,而不是相同的後端。