• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

로컬환경에서 로드밸런서 작성시 External IP 관련 질문 드립니다!

21.01.27 20:06 작성 조회수 279

0

안녕하세요 강사님 좋은 강의 정말 잘 보고 있습니다. 

다름이 아니라 현재 오픈스택으로 로컬 환경에서 실습 하던 중에 강사님의 강의에서 로드밸런서 타입이나 기타 External IP 환경을 재현해 보고 싶었습니다.

 외부 IP가 없으니 당연히 Pending이 걸리는게 맞는거 같고 좀 더 알아보니 오픈 로드밸런서로 Porter나 MetalLB 등이 있더군요.

그래서 여차저차 MetalLB의 Config.yaml 파일까지 작성 후 적용하여 로드밸런서가 잡히는 걸 확인 했습니다.

1. 헌데 현재 오픈스택에서 사용중인 인스턴스들의 아이피 10.x.x.x 는 아이피 192.168.xxx.xxx 와 같이 1:1 로 밖에 매핑이 안돼고 결론적으로 오픈 로드밸런서를 사용하려면 현재 마스터의 인스턴스 10.x.x.x IP 주소를 MetalLB의 Config.yaml 의 address에 할당하여 접속은 되긴 하지만 그 이상의 IP를 config에 할당하여도 마스터 인스턴스의 IP가 할당된 로드밸런서만 접속이 가능하더군요.

로컬에서는 오픈 로드밸런서 사용 시  로드밸런서를 단 1개밖에 사용할 수 없는지 궁금합니다.

2. 로드 밸런서를 구성의 맨 앞단에 붙이는 것과 마스터-노드 사이에 서비스로 붙이는 거랑은 완전히 다른 개념인지 궁금합니다.

답변 1

답변을 작성해보세요.

0

gasbugs님의 프로필

gasbugs

2021.01.31

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

1. 헌데 현재 오픈스택에서 사용중인 인스턴스들의 아이피 10.x.x.x 는 아이피 192.168.xxx.xxx 와 같이 1:1 로 밖에 매핑이 안돼고 결론적으로 오픈 로드밸런서를 사용하려면 현재 마스터의 인스턴스 10.x.x.x IP 주소를 MetalLB의 Config.yaml 의 address에 할당하여 접속은 되긴 하지만 그 이상의 IP를 config에 할당하여도 마스터 인스턴스의 IP가 할당된 로드밸런서만 접속이 가능하더군요.

로컬에서는 오픈 로드밸런서 사용 시  로드밸런서를 단 1개밖에 사용할 수 없는지 궁금합니다.

config.yaml에 할당되는 ip 대역은 192.168.0.0/24 나 192.168.0.100-120과 같이 일부 영역을 로드밸런서 나타낼 수 있습니다.

로드밸런서의 어떤 IP를 주셨는지 확인은 어렵습니다만 말씀하신 내용으로 봤을 때 "마스터 ip 대역대만 사용 가능했다"는 말씀으로 이해됩니다.

일단 이해한 것을 바탕으로 말씀드리면 로드밸런서에서 사용할 수 있는 IP는 노드 IP대역만 사용이 가능합니다. metallb는 config.yaml에 세팅된 IP를 먼저 할당 받은 뒤 로드밸런서를 생성하시면 워커 노드의 인터페이스에 해당 IP를 할당합니다. 따라서 노드 IP 대역으로 사용 가능한 IP가 제한되지만 다수의 IP를 사용하는 것은 가능합니다. 

arp -a를 사용하시면 새로 svc가 할당 받은 ip가 어느 interface로 매핑됐는지 확인할 수 있습니다. 다음 내용에서는  work1의 인터페이스에 192.168.0.29와 192.168.0.101이 모두 연결된 모습을 확인할 수 있습니다.

$ arp -a
work1 (192.168.0.29) at 00:0c:29:80:bf:6b [ether] on ens33
master (192.168.0.38) at 00:0c:29:d9:5b:8a [ether] on ens33
_gateway (192.168.0.1) at 70:5d:cc:88:a9:ac [ether] on ens33
? (10.244.0.6) at 9e:3b:99:76:a8:ab [ether] on cni0
? (10.244.0.7) at 82:5a:b9:c2:2e:31 [ether] on cni0
nas (192.168.0.31) at 00:0c:29:b1:e6:22 [ether] on ens33
? (192.168.0.101) at 00:0c:29:80:bf:6b [ether] on ens33
registry (192.168.0.32) at 00:50:56:2b:b8:d4 [ether] on ens33
work2 (192.168.0.30) at 00:0c:29:b9:79:a7 [ether] on ens33

2. 로드 밸런서를 구성의 맨 앞단에 붙이는 것과 마스터-노드 사이에 서비스로 붙이는 거랑은 완전히 다른 개념인지 궁금합니다.

마스터와 노드 사이에 LB를 둔다는 말씀은 마스터 노드를 HA로 구성한 형태를 의미하시는 걸로 생각됩니다. 이러한 형태로 구동됩니다.외부 etcd 토플로지

<고가용성 토폴로지 선택 | Kubernetes>

외부에 서비스를 위한 노드를 구성할 때는 다음과 같은 형태로 구현됩니다.

Kubernetes - How to install a single master cluster with kubeadm? - Blog  dbi services

<Kubernetes - How to install a single master cluster with kubeadm? - Blog dbi services (dbi-services.com)>

말씀하신 내용을 제가 잘 인지했는지 확인하기 어려워서 일단 제가 이해하는데로 답변드렸습니다. 부디 도움이 되셨길 바랍니다.

감사합니다!

ladgudcks님의 프로필

ladgudcks

질문자

2021.07.30

친절한 답변 감사합니다. 당시 많은 도움이 되었습니다.

정신없이 배우고 이해하고 지나가느라 감사 댓글을 이제서야 달게 되네요 감사합니다.