본문 바로가기
쿠버네티스

[쿠버네티스] 쿠버네티스 환경세팅 (Oracle VirtualBox, XShell), 한 컴퓨터에 VM 3개 띄우기(Ubuntu)

by woo0doo 2025. 2. 11.

서론

회사에서 진행하는 멘토링 주제로 쿠버네티스를 하게되어 공부하게 되었습니다. 멘토님과 저는 

https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c

 

[따배쿠] 쿠버네티스 시리즈

 

www.youtube.com

위의 강의를 따라가기로 하고 제가 작성하는 글들은 모두 위의 시리즈를 따라가며 작성한 글입니다.

위 강의를 따라가시면서 함께 읽으면 좋을 것 같습니다. 최신 강의가 아니다 보니 해결하면서 나아간 부분이 있기에 막히신다면 제 블로그를 한번 확인해서 이슈를 해결할 수도 있을 것 같습니다.


Oracle VirtualBox설치

https://www.virtualbox.org/

저는 위 링크에서 다운로드를 받았습니다.

그러던 도중...

 

이와 같은 이슈를 만나게 되었습니다.

해결방법 시도 1

로컬디스크 C -> Program file -> oracle -> VirtualBox -> drivers -> vboxup -> Vboxsub를 클릭해서 설치를 실행하고 다시 시도해도 되지 않았습니다.

 

해결방법 시도 2

윈도우에 서비스 검색 후 VirtualBox system service를 껐다가 다시 시작했더니 정상적으로 작동했습니다!!!

 

 

Oracle VM을 실행하고

네트워크 설정 

현재는 노드들이 있지만, 방금 다운로드 받으신 분들은 노드들이 없을 것입니다.

도구를 클릭하고 네트워크를 선택하여 k8s에서 사용할 네트워크를 만들어줍니다.

※아마 강의에서는 네트워크 설정을 다른곳에서 할텐데 찾느라 조금 해맸습니다..ㅠㅠ

 

도구의 네트워크 클릭

 

k8s Network 생성 IPv4 접두사는 다음과 같이 작성하고, DHCP 활성화

 

포트 포워딩 설정 총 3개를 띄울 것이기 때문에 포트 포워딩도 3개

호스트 포트를 잘 봐두었다가 ubuntu 안에서 설정할 때 사용합니다!

 

NAT 네트워크는 왜 사용하는 것일까?

더보기

이런 구성을 선택한 이유는 VM들(가상 머신들)이 서로 통신하고, 동시에 호스트(실제 PC)에서 개별 VM에 접근할 수 있도록 하기 위함입니다. 좀 더 자세히 설명하면:

  1. 독립적인 네트워크 환경 구성
    • NAT 네트워크 사용: NAT(Network Address Translation) 네트워크를 사용하면 VM들은 외부 네트워크와는 격리된 별도의 네트워크(여기서는 10.100.0.0/24 대역)를 사용하게 됩니다.
    • 내부 IP 주소 할당: 각 VM에 고유의 내부 IP(10.100.0.105, 10.100.0.106, 10.100.0.107)를 할당하여 서로 간의 통신이나 클러스터 구성(예: 쿠버네티스 클러스터 구성 연습)을 할 때 혼동 없이 연결할 수 있습니다.
  2. 호스트와의 편리한 연결
    • 포트 포워딩 설정: NAT 네트워크는 기본적으로 외부에서 VM 내부로 직접 접근하지 못하게 막기 때문에, 호스트에서 각 VM으로 접근하려면 포트 포워딩이 필요합니다.
    • SSH 접속을 위한 포트 매핑: 각 VM의 SSH 서비스(포트 22)를 호스트의 다른 포트(105, 106, 107)로 매핑해두면, 호스트에서 127.0.0.1:105, 127.0.0.1:106, 127.0.0.1:107로 접속함으로써 각 VM에 SSH로 접속할 수 있습니다.
  3. 실습 환경에 적합한 이유
    • 쿠버네티스 연습: 쿠버네티스 클러스터는 여러 노드(서버)가 서로 통신하며 구성되는데, 위와 같은 설정으로 각 VM을 클러스터의 노드처럼 구성할 수 있습니다.
    • 네트워크 격리 및 관리: NAT 네트워크를 사용함으로써 VM들끼리의 네트워크 충돌이나 외부 네트워크와의 간섭을 최소화할 수 있고, 필요할 때마다 호스트에서 손쉽게 접속할 수 있기 때문에 실습 환경 구축에 유리합니다.

---

 

NAT 네트워크 내부 IP

  • 가상 머신들은 NAT 네트워크 내에서 할당받은 IP 주소(여기서는 10.100.0.105 등)를 사용하지만, 이 주소는 NAT 네트워크 내부에서만 유효합니다. (직접 접근 불가능)

호스트에서의 접근

  • 호스트(로컬 PC)는 직접 10.100.0.105로 접근할 수 없기 때문에, 포트 포워딩을 설정합니다.
  • 예를 들어, 호스트의 127.0.0.1:105에 접속하면, 이 포트 포워딩 규칙에 의해 트래픽이 NAT 네트워크 내부의 10.100.0.105의 22번 포트(보통 SSH 포트)로 전달됩니다.

결론

  • 호스트에서 VM에 접근할 때는 직접 10.100.0.105에 연결하는 것이 아니라, 127.0.0.1에 설정한 포트(예: 105)를 거쳐서 접속해야 합니다.
  • 이렇게 하는 이유는 NAT 네트워크가 가상 머신을 외부 네트워크와 격리시키면서도, 포트 포워딩을 통해 필요한 연결만 허용하기 때문입니다.

 

Ubuntu VM 생성

우선 가상머신에서 사용할 Ubuntu를 다운로드 받아줍니다.

https://ubuntu.com/download/desktop

저는 위 링크에서 다운로드를 진행했고, 제가 봤을 때, 가장 최신버전인 Ubuntu 24.04.1 LTS를 다운로드 받았습니다.

 

 

그 후 Oracle VitualBox에서 Ubuntu 가장 최신버전으로 VM을 만들어 줍니다.

 

 

하드웨어 측면에서 제가 기본 메모리를 2048로 설정하고 진행했었는데 우분투를 다운로드 받다가 서버가 멈추는 현상을 발견했습니다.

24년도 ubuntu 버전부터는 메모리를 4GB이상을 권장하는 것을 확인하고 4GB로 변경하니 정상적으로 설치할 수 있었습니다.

 

 

이렇게 총 3개를 만들었습니다.

저의 노드이름은 k8s-master, k8s-node1, k8s-node2로 만들었습니다.

 

모두 만들고 각 노드의 설정에 들어가

플로피가 체크되어있을텐데 체크를 해제합니다.

 

네트워크 탭에 들어가서 NAT 네트워크와 아까 설정한 k8s Network를 설정합니다.

 

 

또, 저장소 탭에서

컨트롤러를 클릭하고 cd모양의 +를 클릭합니다. (왼쪽꺼!)

추가 버튼 클릭 후, 아까 다운로드 받았던 ubuntu iso 파일을 넣어줍니다.

 

설정을 마치고 실행하게 되면 조금의 설정을 뭍는 장면 후,

 

중간에 이런식으로 작성해주면 되는데, 저는 그냥 이름은 ubuntu, 컴퓨터 이름은 ubuntu-VirtualBox, ubuntu-VirtualBox.node1, ubuntu-VirtualBox.node2 이런식으로 3개 만들었습니다.

 

 

설치하는 모습을 볼 수 있습니다.

 

모두 완료되면 환경설정에 들어가 네트워크 부분에서 IPv4 수동으로 변경하고

다음과 같이 설정해줍니다.위에 있는 주소는 포트포워딩한 주소를 입력해야 합니다!!!!!

 

이후 터미널로 들어가서 

 

ip addr

위 명령어를 사용해 IP가 바뀐것을 확인하고

 

sudo vi /etc/hostname

호스트 네임을 변경

 

 

sudo vi /etc/hosts

다음과 같이 파일을 변경해줍니다.

 

ping -c 3 8.8.8.8

을 통해 외부와의 연결을 확인하고

 

sudo passwd root

sudo passwd ubuntu #설치시 입력한 사용자 이름

를 통해 비밀번호를 변경해줍니다.

 

 

su - root

root 사용자로 전환하고

 

systemctl set-default multi-user.target

text 로그인 환경으로 전환합니다.

 

apt-get update

apt-get install -y openssh-server curl vim tree

reboot

 

로 재시작하게되면 이제 text환경으로 접속할 수 있습니다.

 

node 3개 모두 위의 설정을 마치고

https://www.netsarang.com/ko/free-for-home-school/

위의 사이트에서 Xshell을 다운로드 받았습니다.

 

새 새션을 열고 다음과 같이 연결을 시도했습니다.

사용자 인증에서 자신이 입력했었던 사용자 이름과 암호를 입력해줍니다.

 

이렇게 확인을 하게되면 정상적으로 연결이 됩니다.

 

단 이렇게 3개의 노드가 모두 실행 중이어야 정상적으로 연결이 될 것입니다!!!

 

 

다음과 같이 모든 서버를 띄울 수 있었습니다!

 

VM 3개 설정하기.. 끝..

 

이후에는 각 노드에 쿠버네티스를 설치하겠습니다.