쿠버네티스 실습을 위해 데스크탑에 Virtualbox를 이용해 가상 머신 4대를 구축했다.
하지만 주 개발환경은 Macbook 이므로 맥북에서 가상머신에 접근할 수 있도록 네트워크 설정을 진행해주었다.
먼저 데스크탑의 가상머신은 다음과 같다.
가상머신들은 NAT 과 호스트 전용 네트워크를 통해 Host (데스크탑)과 연결되어 있다.
그리고 SSH 연결을 위해 Virtualbox 포트 포워딩을 해주었다.
포트 포워딩이란 외부 IP와 외부 Port를 내부 IP와 내부 Port와 연결시켜주는 작업으로 여기서는 Host인 데스크톱이 외부가 되고 가상머신들이 내부가 된다.
나는 Vagrant를 통해 vagrantfile에서 포트포워딩을 코드로 설정해주었지만
그렇지않다면 Virtualbox에서 설정-네트워크-어댑터1-포트 포워딩을 통해 설정해줄 수 있다.
예를 들어 호스트 IP 127.0.0.1:60010 은 Master 노드의 22번 포트로 연결되게 된다. (Virtualbox에선 10.0.2.15:22)
Virtualbox와 Host를 연결해주었으니 다음은 맥북과 데스크탑을 연결해줄 차례이다.
데스크탑은 공유기와 연결되어 있고 장소에 구애받지 않고 연결하고 싶으므로 공유기를 통한 포트포워딩이 필요하다.
공유기를 통한 포트 포워딩이 필요한 이유는 현재 공유기에는 데스크탑 외에도 다른 기기들이 많이 연결되어 있고,
공유기 바깥으로 오픈된 외부 IP는 한 개이기 때문이다.
이 외부 IP를 확인하는 방법은 구글에서 내 IP 확인 이라고 검색하면 된다.
따라서 외부 IP와 port번호를 통해 내부 (데스크탑) IP인 192.168.0.4의 특정 포트로 연결해주는 작업이 필요하다.
외부에 오픈할 포트는 Virtualbox에 연결한 포트와 같이 60010, 60101~60103 포트를 사용했다.
포트포워딩은 공유기 설정 페이지에서 할 수 있고 IPtime 공유기 설정 페이지는 192.168.0.1에 접속하면 된다.
여기서 내부 IP주소에 192.168.0.4를 입력해주고 외부 포트와 내부 포트에 원하는 포트를 입력해준다.
여기까지 진행하면 마지막 단계인 인바운드 규칙 설정하기가 남아있다.
윈도우의 경우 기본적으로 들어오는 모든 포트를 보안때문에 막아놓았기 때문에 포트포워딩으로 사용할 포트를 열어주는 작업이 필요하다.
위 모든 과정을 진행하더라도 인바운드 규칙을 설정해주지 않으면 해당 포트는 닫힌 것으로 나온다.
https://www.yougetsignal.com/tools/open-ports/ 사이트를 통해 포트포워딩과 포트가 제대로 열려있는 지 확인할 수 있다.
인바운드 규칙은 Windows 보안 - 방화벽 및 네트워크 보호에서 설정이 가능하다.
이렇게 인바운드 규칙까지 설정해주면 외부 IP:60010 으로 접근하면 가상머신인 Master 노드에 SSH 접속이 가능하게 된다.