@@ -49,6 +49,55 @@ monitoring `mgmt-gateway` takes care of handling HA when several instances of Pr
4949available. The reverse proxy will automatically detect healthy instances and use them to process user requests.
5050
5151
52+ High Availability for mgmt-gateway service
53+ ==========================================
54+
55+ In addition to providing high availability for the underlying backend services, the mgmt-gateway
56+ service itself can be configured for high availability, ensuring that the system remains resilient
57+ even if certain core components for the service fail.
58+
59+ Multiple mgmt-gateway instances can be deployed in an active/standby configuration using keepalived
60+ for seamless failover. The `oauth2-proxy ` service can be deployed as multiple stateless instances,
61+ with nginx acting as a load balancer across them using round-robin strategy. This setup removes
62+ single points of failure and enhances the resilience of the entire system.
63+
64+ In this setup, the underlying internal services follow the same high availability mechanism. Instead of
65+ directly accessing the `mgmt-gateway ` internal endpoint, services use the virtual IP specified in the spec.
66+ This ensures that the high availability mechanism for `mgmt-gateway ` is transparent to other services.
67+
68+ Example Configuration for High Availability
69+
70+ To deploy the mgmt-gateway in a high availability setup, here is an example of the specification files required:
71+
72+ `mgmt-gateway ` Configuration:
73+
74+ .. code-block :: yaml
75+
76+ service_type : mgmt-gateway
77+ placement :
78+ label : mgmt
79+ spec :
80+ enable_auth : true
81+ virtual_ip : 192.168.100.220
82+
83+ `Ingress ` Configuration for Keepalived:
84+
85+ .. code-block :: yaml
86+
87+ service_type : ingress
88+ service_id : ingress-mgmt-gw
89+ placement :
90+ label : mgmt
91+ virtual_ip : 192.168.100.220
92+ backend_service : mgmt-gateway
93+ keepalive_only : true
94+
95+ The number of deployed instances is determined by the number of hosts with the mgmt label.
96+ The ingress is configured in `keepalive_only ` mode, with labels ensuring that any changes to
97+ the mgmt-gateway daemons are replicated to the corresponding keepalived instances. Additionally,
98+ the `virtual_ip ` parameter must be identical in both specifications.
99+
100+
52101Accessing services with mgmt-gateway
53102====================================
54103
@@ -123,9 +172,6 @@ The specification can then be applied by running the following command:
123172Limitations
124173===========
125174
126- A non-exhaustive list of important limitations for the mgmt-gateway service follows:
127-
128- * High-availability configurations and clustering for the mgmt-gateway service itself are currently not supported.
129175* Services must bind to the appropriate ports based on the applications being proxied. Ensure that there
130176 are no port conflicts that might disrupt service availability.
131177
0 commit comments