
저는 동일한 머신에서 두 개의 VM을 호스팅했습니다. 하나는 본질적으로 활성 상태입니다. 즉, 서비스를 호스팅하고 클라이언트에 연결되어 있습니다(클라이언트는 호스트 머신에서 직접 실행 중입니다). 내결함성 서비스를 구현해야 합니다. 즉, 기본 VM에 장애가 발생하면 두 VM이 모두 동일한 서비스를 호스팅한다는 점을 고려하여 클라이언트가 자동으로 보조 VM에 연결됩니다.
유동IP에 대한 글을 어디선가 본 적이 있는데, 확인해 보니 유료 서비스인 것으로 나타났습니다. 지출하는 데 돈이 필요하지 않고 이를 달성할 수 있는 간단한 방법이 있습니까?
머신은 Linux 기반입니다. 특히 호스트는 ubuntu 20.*이고 VM에는 ubuntu 18.*이 있습니다.
답변1
다음 중 하나를 사용하여 VIP 또는 가상 IP라고도 하는 "유동 IP"를 얻을 수 있습니다.
- 연결 유지(VRRP)
- 심장박동기/코로싱크
- 잉어 (http://manpages.ubuntu.com/manpages/precise/man4/carp.4freebsd.html)
참고: 클라이언트가 목록에서 정상적인 서버를 선택하도록 하여 클라이언트에서 중복성을 달성할 수도 있습니다.
VM 간에 중복성을 구현한다는 점에 유의하세요.같은 호스트권장되지 않습니다. (호스트는 단일 장애 지점입니다)
답변2
애플리케이션/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/