Linux
將一個虛擬機的 ip 移動到另一個虛擬機
我在同一台機器上託管了兩台虛擬機,其中一台在本質上是活動的,即託管服務並連接到客戶端(客戶端直接在主機上執行)。我必須實現容錯服務,即在主虛擬機發生故障時,客戶端會自動連接到輔助虛擬機,因為兩個虛擬機都託管相同的服務。
我在某處讀到關於浮動 IP 的資訊,但當我檢查時,我發現它是一項付費服務。有什麼簡單的方法可以實現這一點,而且不需要花錢嗎?
該機器是基於Linux的,具體來說,主機是ubuntu 20.,VMs有ubuntu 18.。
您可以通過以下任一方式實現“浮動 IP”,也稱為 VIP 或虛擬 IP:
- 保活(VRRP)
- 起搏器/同步
- 鯉魚(http://manpages.ubuntu.com/manpages/precise/man4/carp.4freebsd.html)
僅供參考:您還可以通過讓他從列表中選擇健康的伺服器來實現客戶端的冗餘。
請注意,不建議在同一主機上的虛擬機之間實現冗餘。(主機是單點故障)
我建議您在應用程序/VM 前使用反向代理作為負載均衡器。您可以使用類似
nginx
或haproxy
nginx 配置將如下所示:
http { upstream backend { server backend1.example.com; server backend2.example.com; server 192.0.0.1 backup; } server { location / { proxy_pass http://backend; } } }
它會自動對上游主機進行健康檢查,因此如果任何上游主機出現故障,nginx 會自動檢測到它,從而停止向不健康主機發送請求。
您可以在以下位置閱讀更多資訊: https ://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/