WAN 페더레이션 개요
WAN 페더레이션 개요
이 문서에서는 Consul에서 둘 이상의 Consul 데이터센터를 연결하는 페더레이션(federation) 개요를 설명해 드려요. 데이터센터가 연결되면 각 데이터센터의 Consul 서버가 서로 통신할 수 있게 됩니다.
출처: 문서
본문
Consul에서 페더레이션은 둘 이상의 Consul 데이터센터를 함께 연결하는 행위예요. 데이터센터가 연결되면 각 데이터센터의 Consul 서버가 서로 통신할 수 있습니다. 이를 통해 다음 기능이 활성화돼요.
- 모든 클러스터의 서비스가 Consul 서비스 메시를 통해 서로 호출할 수 있습니다.
- 인텐션(Intentions)을 사용해 모든 클러스터에서 어떤 서비스가 통신할 수 있는지에 대한 규칙을 강제할 수 있어요.
- L7 라우팅 규칙은 멀티 클러스터 장애 조치와 트래픽 분할을 가능하게 해요.
- Consul UI에는 데이터센터 간을 탐색할 수 있는 드롭다운 메뉴가 있어요.
기존 WAN 페더레이션 대 메시 게이트웨이를 통한 WAN 페더레이션
Consul은 WAN 페더레이션을 위한 두 가지 메커니즘을 제공해요.
- 기존 WAN 페더레이션(Traditional WAN Federation)
- 메시 게이트웨이를 통한 WAN 페더레이션(Consul 1.8.0에서 새로 제공)
기존 WAN 페더레이션
기존 WAN 페더레이션에서는 모든 Consul 서버가 광역 네트워크(WAN)에 노출되어야 해요. Kubernetes 맥락에서 이는 종종 설정하기 어렵습니다. 각 Consul 서버 pod가 다른 모든 Kubernetes 클러스터에서 라우팅 가능한 IP 주소를 가진 Kubernetes 노드에서 실행되어야 하기 때문이에요. Kubernetes 클러스터는 추가 네트워크 장치와 구성 없이는 다른 클러스터가 라우팅할 수 없는 프라이빗 서브넷에 배포되는 경우가 많습니다.
Kubernetes에서 pod를 노출하는 문제에 대한 해결책은 로드 밸런서 서비스지만, 기존 WAN 페더레이션에서는 UDP와 TCP를 모두 프록시해야 하고 Kubernetes 로드 밸런서는 TCP만 프록시하므로 이를 사용할 수 없어요. 또한 각 Consul 서버는 고유한 주소가 필요하므로 각자 자신의 로드 밸런서가 필요합니다. 이는 비용과 복잡성을 증가시켜요.
메시 게이트웨이를 통한 WAN 페더레이션
기존 WAN 페더레이션에서 발생한 문제를 해결하기 위해 Consul 1.8.0은 메시 게이트웨이를 통한 WAN 페더레이션을 지원해요. 이 메커니즘은 Consul 서버가 아닌 메시 게이트웨이만 라우팅 가능한 주소로 노출하면 됩니다. 메시 게이트웨이 pod 앞에 단일 Kubernetes 서비스를 배치할 수 있으며, 모든 트래픽은 메시 게이트웨이를 통해 데이터센터 간에 흐릅니다.
네트워크 요구 사항
클러스터/데이터센터는 pod IP 공간이 겹치거나 다른 클라우드 프로바이더나 플랫폼에 있더라도 페더레이션할 수 있어요. Kubernetes 클러스터는 가상 머신에서 실행되는 Consul 데이터센터와 페더레이션할 수도 있습니다(반대도 가능). 클러스터 간 통신은 종단 간 암호화되므로 메시 게이트웨이는 공개 인터넷에 노출될 수도 있어요.
네트워킹 요구 사항은 세 가지가 있어요.
- 보조(secondary) 데이터센터의 Consul 서버가 처음 시작될 때 기본(primary) 데이터센터의 메시 게이트웨이에 직접 호출할 수 있어야 해요.
- 보조 데이터센터의 Consul 서버가 기본 데이터센터의 메시 게이트웨이에 초기 호출을 한 후, 보조 데이터센터의 메시 게이트웨이가 시작될 수 있어요. 이 시점부터 서버 간 통신은 먼저 로컬 메시 게이트웨이로, 그 다음 원격 메시 게이트웨이로 흐릅니다. 즉 모든 데이터센터의 메시 게이트웨이는 서로 라우팅할 수 있어야 해요.
- 예를 들어 각 클러스터의 메시 게이트웨이 pod 앞에 로드 밸런서 서비스를 사용한다면, 그 로드 밸런서 IP가 다른 메시 게이트웨이 pod에서 라우팅 가능해야 합니다. 공용 로드 밸런서를 사용하면 이것이 보장돼요. 프라이빗 로드 밸런서를 사용한다면 다른 클러스터에서 그 IP/DNS 주소가 라우팅 가능한지 확인해야 해요.
- ACL이 활성화된 경우 기본 클러스터는 보조 클러스터의 Kubernetes API URL에 요청을 보낼 수 있어야 해요.
다음 단계
이제 페더레이션 개요를 파악했으니, 사용 사례에 따라 Kubernetes 클러스터 간 페더레이션 또는 VM과 Kubernetes 간 페더레이션 페이지로 진행해 보세요.
지침
WAN 페더레이션을 사용하는 데 도움이 되는 다음 사용 문서를 참고할 수 있어요.
- VM 간 WAN 페더레이션
- 가상 머신과 Kubernetes 클러스터 간 WAN 페더레이션
- 여러 Kubernetes 클러스터 간 WAN 페더레이션