인프런 커뮤니티 질문&답변

taeil710@naver.com님의 프로필 이미지

작성한 질문수

대세는 쿠버네티스 [초급~중급]

안녕하세요 로드밸런서에 대해 궁금한게 있어서 질문드립니다.

작성

·

806

1

안녕하세요 

일단 로드밸런서라는게 기본적으로 트래픽 분산이라는 개념을 가지고 있는것으로 알고있습니다.

그래서 특정 ip로 많은 트래픽이 접근했을 때 예를들면 

192.168.0.10 ~ 192.168.0.200 까지의 범위로 설정해두면 알아서 배분되서 접근되게 말이죠

근데 쿠버네티스에서의 서비스의 로드밸런서의 의미는 단순히 external IP를 제공되는 용도로밖에 생각되지 않는데 

이게 맞는지에 대해 여쭤보고싶습니다.

현재 온프렘 환경에서 metallb를 사용하여 실험해보고있는데

구성환경은 이렇습니다. 

공유기가 있고 해당 공유기에 대한 외부IP는 (125.x.x.x) 입니다.

내부에서 동적으로 할당 가능한 IP는 (192.168.0.10 ~ 192.168.0.200) 까지구요

쿠버네티스 마스터 노드는 내부 IP 192.168.0.98 입니다.

이 마스터 노드에서 metallb를 통해 로드밸런서로 할당 가능한 IP의 범위를 (192.168.0.10  ~ 192.168.0.20) 으로 지정해 놨구요 

예제를 위해 만들어놓은 nginx를 로드 밸런스 service로 묶어 배포를 했더니 external IP 192.168.0.10를 할당받았습니다.

그리고 공유기에서 포트포워딩을 통해 192.168.0.10 에 대한 포트 포워딩을 해줬고 

외부에서 125.x.x.x 로 접근하면 nginx가 정확하게 띄워집니다.

근데 이제 의문사항은

1. 로드밸런서의 IP범위를 10~20으로 지정해놨는데 이 서비스 IP가 사용자 몰림에 따라 유동적으로 바뀌는 것인지

2. 만약 IP가 바뀌는 것이라면 바뀌는 IP에 대한 외부 포트포워딩을 일일이 다 해줘야하는 것인지

가 궁금합니다.

감사합니다.

답변 6

2

아~ 그러니까 로드밸런서의 트래픽 분산의 역할은 서비스가 배분되어있는 워커 노드들에 대한 트래픽 분산이군요.. 

제가 착각을 했었습니다. 서비스에 대한 트래픽을 위쪽 단에서 처리하는게 아니라 쿠버네티스 노드와 포드로 처리하는 건데 제가 단일노드에서 테스트하다보니 기본적인 원칙을 잊고있었네요.

덕분에 이해가 너무 쉬웠습니다. 항상 감사합니다 선생님 ^^!

2

일프로님의 프로필 이미지
일프로
지식공유자

1. 로드밸런서의 IP범위를 10~20으로 지정해놨는데 이 서비스 IP가 사용자 몰림에 따라 유동적으로 바뀌는 것인지

- 로드밸런서의 IP범위를 10~20으로 지정해 놓았다면, 이제 서비스 10개는 Loadbalancer 타입으로 만들 수 있겠네요. 이 설정과 사용자 몰림과는 다른 문제입니다.

2. 만약 IP가 바뀌는 것이라면 바뀌는 IP에 대한 외부 포트포워딩을 일일이 다 해줘야하는 것인지

가 궁금합니다.

- 한번 service에 할당된 externalIp는 바뀌지 않습니다.

쿠버네티스에서 LoadBalancer 타입의 Service역할은 외부의 트래픽을 내부 Node들에 로드밸런싱을 해줍니다.

그리고 metallb를 설치했기 때문에 외부연결이 가능해진 LoadBalancer 타입의 Service를 만들 수 있는 거고요.

LoadBalancer 타입의 Service가 트래픽 분산을 시키는건 맞지만, 내부 worker node들을 대상으로 트래픽 분산을 시키는거지

특정 ip로 많은 트래픽이 접근했을 때 192.168.0.10 ~ 192.168.0.200 까지의 범위로 설정해두면 알아서 배분되는 것과는 다른 내용입니다. 

1

일프로님의 프로필 이미지
일프로
지식공유자

위에  사진대로 단일 노드에서 하시는거라면 metallb는 단순 mater ip를 이용하지 않고 다른 내부 ip로 공유기와 포트포워딩을 하는 의미라. 딱히 metallb를 사용해야 되는 이유는 없어집니다. 트래픽이 많아지더라도 ip가 늘어나거나 변하는건 없고요.

1

일프로님의 프로필 이미지
일프로
지식공유자

퇴근전에 급하게 답변드리느라 혹시 이해안되는 내용 있으면 다시 질문 부탁드려요.

저도 잘못 이해한 부분이 있는지 다시 보겠습니다.

1

위에 그림이 현재 제 상황입니다.
125.x.x.x:60000  >>>  192.168.0.20:8080  >>>  nginx:80 으로 접속 가능합니다.

1