티스토리 뷰

728x90

 

✅ 목표 

쿠버네티스 클러스터 내부에서 나가는 요청이 외부 API로 직접 나가는 것이 아니라,
반드시 NSX-ALB의 공인 IP:80을 통해 외부 API로 전달되어야 한다.

즉, 요청 흐름은 다음과 같습니다:

[Pod 또는 API Gateway] → [NSX-ALB 공인 IP:80] → [외부 API 서버 (예: api.example.com:80)]

✅ NSX-ALB에서 설정해야 할 것

NSX Advanced Load Balancer (ALB)에서 다음 구성으로 설정하면 됩니다:


🛠️ 1. Virtual Service (VS) 생성

  • Name: vs-external-api
  • VIP (Virtual IP): 1.2.3.4 (공인 IP)
  • Port: 80
  • Application Profile: HTTP (또는 TCP도 가능)
  • SSL: 사용하지 않음 (HTTP 라고 가정)

🛠️ 2. Pool 생성 (포워딩 대상)

  • Name: pool-api-example
  • Type: External
  • Servers:
    • api.example.com 의 실제 IP 주소 (예: 93.184.216.34)
  • Port: 80
  • Health Monitor: HTTP or TCP

🧠 보통 외부 도메인의 경우 DNS 해석이 필요하므로 "FQDN 기반 서버 등록" 기능을 활용할 수 있습니다.


🛠️ 3. Virtual Service → Pool 매핑

  • 앞서 만든 vs-external-api 가
  • 요청을 pool-api-example 에 포워딩하도록 연결합니다.

🛠️ 4. Host 헤더 처리 (선택적)

만약 외부 API 서버가 Host 헤더 기준으로 요청을 필터링한다면
HTTP Request Policy 를 추가해서 Host 헤더를 수정할 수 있습니다.

예:

  • Match: All requests
  • Action: Add Header Host: api.example.com

✅ 파드 또는 API Gateway에서 호출 시

curl -H "Host: api.example.com" http://1.2.3.4/

→ ALB가 api.example.com:80 으로 요청을 포워딩
→ 응답은 다시 파드로 돌아옴


✅ 주의사항

 

항목  주의할 점
DNS 외부 API의 IP는 정적 IP여야 이상적. DNS TTL 관리 주의
응답 헤더 처리 외부 API의 응답에서 리디렉션이나 쿠키 도메인 문제가 생길 수 있음
ALB 포트 HTTPS API 사용 시 ALB에 SSL Termination 또는 Passthrough 설정 필요
클러스터 네트워크 파드 또는 노드가 ALB VIP (공인 IP)에 접근 가능해야 함

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함