Tôi có một thiết lập với 3 nút, mỗi nút đã được cài đặt keepalived và HAProxy. Keepalived được cài đặt trên VM nhưng HAProxy đang chạy như một phần của docker swarm. HAProxy đang chạy trên chế độ mạng máy chủ.
--VM-1 --------------------------
| HAP-1 |
yêu cầu | ___________________ __________|
=========>| |VIP + Keepalive | => |HAProxy||
|| | |_________________| |_______||
|| -----------------------------------
||
|| --------VM-2-----------------------
|| | HAP-2 |
|| | ___________________ __________|
======>| | Giữ nguyên | => |HAProxy||
|| | |_________________| |_______||
|| -----------------------------------
||
|| --VM-3 --------------------------
|| | HAP-3 |
|| | ___________________ __________|
======>| | Giữ nguyên | => |HAProxy||
| |_________________| |_______||
-----------------------------------
Lúc đầu, VM-1 và HAP-1 đang hoạt động. Khi xảy ra lỗi trên VM-1, VIP (ví dụ như vậy) sẽ chuyển sang VM-2. Tôi muốn HAProxy ở trên cùng một máy với VIP (tức là HAP-2). Khi tôi kiểm tra thiết lập bằng cách dừng dịch vụ lưu trữ trên VM-1, nó chỉ chuyển VIP sang VM-2 và HAProxy tiếp tục hoạt động trên VM-1. Tôi nghĩ rằng sự xâm nhập của docker đang xử lý kết nối tới HAProxy và định tuyến nó tới HAP-1 nơi dừng lưu giữ. Có thể chuyển đổi VIP + HAProxy sang một trong các máy ảo dự phòng không?