• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

cluster <-> 외부 통신

22.06.05 14:41 작성 조회수 169

0

안녕하세요

cluster를 외부에서 접근하려하는데요, 궁금한 것들을 질문드립니다.

 

1) 운영환경에서는 NodePort는 비효율적이라서 LB혹은 인그레스를 사용하는것이 맞을까요?

2) 모든 서비스를 각각 LB 타입으로 사용하기보다는 규모가 크지 않다면 ingress하나로 사용하는 것이 효율적인게 맞을까요?

3) 만약 node ip만 public이고 추가적인 ip를 사용할 수 없는 경우에는 어떤 방식으로 cluster를 외부에 노출시키는 것이 좋을까요?? LB는 metalLB를 사용하고 있습니다.

 

바쁘시겠지만 답변주시면 감사하겠씁니다.

 

 

답변 1

답변을 작성해보세요.

0

gasbugs님의 프로필

gasbugs

2022.06.10

안녕하세요 강사 최일선입니다.

질문을 연휴기간에 확인했었는데 잊어버렸네요 죄송합니다.

1) 운영환경에서는 NodePort는 비효율적이라서 LB혹은 인그레스를 사용하는것이 맞을까요?

로드밸런서나 인그레스를 사용하는 경우에도 NodePort를 사용해야 합니다. 노드 포트를 사용하지 않고서는 외부로 포트를 오픈할 수 없습니다. 로드밸런서를 사용하시면 자동으로 노드 포트 기능이 사용되므로 로드밸런서만 사용하는 것은 불가능합니다.

2) 모든 서비스를 각각 LB 타입으로 사용하기보다는 규모가 크지 않다면 ingress하나로 사용하는 것이 효율적인게 맞을까요?

네 맞습니다. 로드밸런서를 많이 사용하게 되면 수십 수백개의 로드밸런서 비용과 IP가 사용되므로 MSA 아키텍처의 특성상 다수의 서비스를 운영할 때는 ingress를 사용하는 것이 좋습니다. 

3) 만약 node ip만 public이고 추가적인 ip를 사용할 수 없는 경우에는 어떤 방식으로 cluster를 외부에 노출시키는 것이 좋을까요?? LB는 metalLB를 사용하고 있습니다.

노드 IP가 퍼블릭이라는 것은 클라우드 환경으로 생각됩니다. 보안성있는 인프라 구성을 위해서는 노드의 퍼블릭 IP를 직접 외부로 노출하는 것은 적절하지 않으며 앞단의 보안 장비를 배포하는 것이 일반적입니다. 메탈LB를 사용한다 하더라도 앞단에 공인 IP를 설정할 수 있는 방화벽 등을 배치하는 것이 적절해 보입니다. 다음 EKS 환경 구성 예제를 확인하시기 바랍니다.

https://medium.com/cloutive/exposing-applications-at-aws-eks-and-integrating-with-other-aws-services-c9eaff0a3c0c

Architecture: Exposing Applications at Kubernetes & AWS

 

감사합니다.