@@ -1030,6 +1030,57 @@ $ echo " router metrics at: http://<ip>:9090/consoles/haproxy.html "
1030
1030
====
1031
1031
1032
1032
1033
+ === Preventing Connection Failures During Restarts
1034
+
1035
+ If you connect to the router while the proxy is reloading, there is a
1036
+ small chance that your connection will end up in the wrong network
1037
+ queue and be dropped. The issue is being addressed. In the meantime,
1038
+ it is possible to work around the problem by installing *_iptables_*
1039
+ rules to prevent connections during the reload window. However, doing
1040
+ so means that the router needs to run with elevated privilege so that
1041
+ it can manipulate *_iptables_* on the host. It also means that
1042
+ connections that happen during the reload are temporarily ignored and
1043
+ will have to retransmit their connection start, lengthening the time
1044
+ it takes to connect, but preventing connection failure.
1045
+
1046
+ Due to these issues, do not enable this option most of the time.
1047
+ However, if you decide you must try to prevent this case from
1048
+ happening, you can make the router use *_iptables_* by changing the
1049
+ service account, and setting an environment variable on the router.
1050
+
1051
+ *Use a Privileged SCC*
1052
+
1053
+ When creating the router, allow it to use the privileged SCC. That
1054
+ this gives the router user the ability to create containers with root
1055
+ privileges on the nodes.
1056
+ ----
1057
+ $ oadm policy add-scc-to-user privileged -z router
1058
+ ----
1059
+
1060
+ *Patch the Router Deployment Configuration to Create a Privileged Container*
1061
+
1062
+ Now that the router use can create privileged containers, make the
1063
+ router deployment configuration use the power so that the router can
1064
+ set the iptables rules it needs. This patch changes the router
1065
+ deployment configuration so that the containter that is created runs
1066
+ as root.
1067
+ ----
1068
+ $ oc patch dc router -p '{"spec":{"template":{"spec":{"containers":[{"name":"router","securityContext":{"privileged":true}}]}}}}'
1069
+ ----
1070
+
1071
+ *Tell the Router to Use iptables*
1072
+
1073
+ Set the option on the router deployment configuration. If you used a
1074
+ non-default name for the router, you will have to change *_dc/router_*
1075
+ accordingly):
1076
+
1077
+ ====
1078
+ ----
1079
+ oc set env dc/router -c router DROP_SYN_DURING_RESTART=true
1080
+ ----
1081
+ ====
1082
+
1083
+
1033
1084
[[deploying-customized-router]]
1034
1085
== Deploying a Customized HAProxy Router
1035
1086
0 commit comments