로드 밸런서의 목적은 서버 간의로드 밸런싱과 인스턴스 상태 등을 추적하는 것입니다. 그러나로드 밸런서 자체가 실패하면 어떻게됩니까? 중복로드 밸런서를 어떻게 설정합니까? (로드 밸런싱로드 밸런서?)
DNS 상태 확인이 어떻게 유용한 지 알 수 있지만 대기 시간에 중대한 문제가 있습니까?
이는 AWS ELB 또는 이와 유사한 서비스를 사용하지 않는 것으로 가정합니다. Nginx라고 말하면 어떻게해야합니까?
로드 밸런서의 목적은 서버 간의로드 밸런싱과 인스턴스 상태 등을 추적하는 것입니다. 그러나로드 밸런서 자체가 실패하면 어떻게됩니까? 중복로드 밸런서를 어떻게 설정합니까? (로드 밸런싱로드 밸런서?)
DNS 상태 확인이 어떻게 유용한 지 알 수 있지만 대기 시간에 중대한 문제가 있습니까?
이는 AWS ELB 또는 이와 유사한 서비스를 사용하지 않는 것으로 가정합니다. Nginx라고 말하면 어떻게해야합니까?
답변:
Load Balancer의 HA (고 가용성)를 달성하거나 서비스와 관련하여 몇 가지 방법이 있습니다. IP 주소를 가진 두 개의 머신이 있다고 가정합니다.
사용자는 IP에 연결하므로 IP를 특정 상자와 분리하는 것이 좋습니다 (예 : 가상 IP 생성). 해당 IP는 192.168.100.100입니다.
이제 자동 장애 조치 / IP 주소 장애 복구를 처리하는 HA 서비스를 선택할 수 있습니다. 유닉스에 대한 가장 간단한 서비스 중 일부는 (u) 잉어 및 킵 얼라이브이며, 더 복잡한 서비스 중 일부는 예를 들어 RedHat Cluster Suite 또는 Pacemaker입니다.
keepalived를 예로 들어 보자. 두 개의 keepalived 서비스 (각각 자체 상자에서 실행)가 서로 통신합니다. 이러한 의사 소통을 종종 하트 비트라고합니다.
| VIP | | |
| Box A | ------v^-----------v^---- | Box B |
| IP1 | | IP2 |
하나의 keepalived가 응답을 중지하는 경우 (어떤 이유로 든 서비스가 중단되거나 상자가 튀거나 종료 됨)-다른 상자에서 keepalived는 누락 된 하트 비트를 발견하고 다른 노드가 작동하지 않는 것으로 가정하고 장애 조치 조치를 수행합니다. 우리의 경우 그 행동은 유동 IP를 가져올 것입니다.
| VIP |
------------------ -------------- | Box B |
| IP2 |
이 경우에 발생할 수있는 최악의 경우는 클라이언트의 세션 손실이지만 다시 연결할 수는 있습니다. 이를 피하려면 두 개의로드 밸런서가 세션 데이터를 동기화 할 수 있어야하며, 그렇게 할 수 있으면 사용자는 짧은 지연이 발생하지 않은 것을 눈치 채지 못할 것입니다.
이 설정의 또 다른 함정은 두 상자가 모두 온라인 상태이지만 링크가 끊어지고 두 상자가 동일한 IP를 가져 오는 경우 두뇌 분리입니다. 이는 일종의 펜싱 메커니즘 (SCSI 예약, IPMI 재시작, 스마트 PDU 전원 차단 등) 또는 서비스를 시작하기 위해 대부분의 클러스터 구성원이 살아 있어야하는 홀수 개의 노드를 통해 해결되는 경우가 많습니다.
| VIP | | VIP |
| Box A | | Box B |
| IP1 | | IP2 |
보다 복잡한 클러스터 관리 소프트웨어 (예 : Pacemaker)는 전체 서비스를 이동할 수 있습니다 (예 : 한 노드에서 중지하고 다른 노드에서 시작)-데이터베이스와 같은 서비스의 HA를 달성 할 수있는 방법입니다.
또 다른 방법은로드 밸런서 근처에서 라우터를 제어하는 경우 ECMP를 사용하는 것입니다. 이 접근 방식을 사용하면로드 밸런서를 수평으로 확장 할 수도 있습니다. 이것은 BGP를 라우터와 통신하는 두 개의 상자 각각에서 작동합니다. 각 상자는 가상 IP (192.168.100.100)를 알리고 라우터는 ECMP를 통해 트래픽의 부하를 분산시킵니다. 컴퓨터가 죽으면 VIP 광고를 중단하고 라우터가 트래픽을 보내지 못하게됩니다. 이 설정에서주의해야 할 것은로드 밸런서 자체가 죽으면 IP 광고를 중지하는 것입니다.
Nginx를로드 밸런서로 사용하면 응답 없음 시간 초과를 감지하도록 구성을 변경하여이 게시물에 자세히 설명 된 리디렉션을 따를 수 있습니다.
이론적으로 HA 환경이있는 경우 클러스터 된 여러로드 밸런서는 서비스가 실패 할 경우 서비스를 유지 관리해야합니다.
이것이 도움이되기를 바랍니다.
하드웨어로드 밸런서는 수년간 "액티브 / 패시브"또는 "액티브 / 액티브"설정을 지원했습니다. 두 경우 모두 계층 1/2 관점에서 병렬로 설정됩니다. 액티브 / 패시브는 설명 된대로 모니터링 / 보관 메커니즘을 사용합니다. 액티브 / 액티브는 여러 가지 방법으로 구현할 수 있습니다. 프론트 엔드에서 단일 IP로 나타나려면 둘 이상의 밸런서가 모두 온라인 상태이면 다음과 같은 작업을 수행 할 수 있습니다.
그런 다음 파트너 장치와의 통신이 끊어 질 때 모드를 모두 또는 그 이상의 트래픽을 수락하도록 변경하십시오.
백엔드 측에서 :