본문 바로가기
개발/docker, k8s, CNCF

docker, k8s 네트워크 뜯기(1) - virtualbox ubuntu 고정 IP로 ssh 접속

by 앗가 2023. 3. 5.
728x90
반응형

k8s와 docker의 네트워크를 이해하기 위해, 또 어떻게 구현되어 있는지 확인해 보기 위해 스스로 인프라를 만져가면서 진행해보려고 합니다. virtualbox위에 ubuntu 가상머신을 올려보겠습니다. docker를 설치하여 컨테이너의 네트워크가 어떻게 이루어지는지 확인하고 kind를 설치하여 kind로 k8s를 다뤄보는 작업을 지금의 가상머신에서 테스트해보려고 합니다. 

 

가상 머신 안에서 복사 붙여 넣기가 아무리 해도 잘 안되어(...) vscode ssh로 머신의 고정 IP에 접속하여 작업하려고 합니다. 

 

실험 환경은 다음과 같습니다. 

- virtualbox 7.0.6

- ubuntu 22.04.2 LTS

- kind 0.17.0

 

순서는 다음과 같습니다.

0. Ubuntu 22.04.2 LTS 이미지 받아오기

1. virtualbox 설정

2. ubuntu-22.04.2 LTS 설치

3. ubuntu network 설정

4. ssh 연결


0. Ubuntu 22.04.2 LTS 이미지 받아오기

https://releases.ubuntu.com/22.04/

 

Ubuntu 22.04.2 LTS (Jammy Jellyfish)

Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently later. This type of image is what m

releases.ubuntu.com

해당 사이트에서 22.04.2 LTS desktop 이미지를 다운로드하였습니다. 


1. virtualbox 설정

가상머신을 생성하기 전에 네트워크를 구성하겠습니다. 네트워크는 [도구] -> [만들기]로 Host-only Network를 만들어주겠습니다. 수동으로 어댑터 설정을 해주고 IPv4주소를 192.168.200.1로 설정해 주었습니다.

 

또 DHCP 서버를 사용하고 서버 주소를 192.168.200.101, 최대 주소 한계를 102~254로 설정해 주었습니다. 

 

이제 머신을 만들어보겠습니다. [머신] -> [새로 만들기]로 network-test 가상머신을 만들어주겠습니다. 종류는 linux, 버전은 ubuntu64로 해주었습니다. 

기본 메모리는 4096MB, 프로세서는 2로 해주었습니다. 

디스크 크기는 30GB로 해주었습니다. 

그리고 생성해 줍니다. ctrl + s를 눌러서 설정에 들어가서 먼저 네트워크를 설정해 주겠습니다. [네트워크] -> [어댑터 2] -> [네트워크 어댑터 사용하기 체크] -> [호스트 전용 어댑터] -> [방금 만든 어댑터 설정]을 해주었습니다. 

다음으로 [저장소] -> [컨트롤러: IDE 밑에 미어있음] -> [광학 드라이브] -> [디스크 파일 선택] -> [ubuntu 22.04.2 LTS 이미지 선택] -> [확인]을 누르고 시작해 줍니다. 


 

2. ubuntu-22.04 LTS 설치

이제 우분투를 설정해 줍니다. [install Ubuntu]로 진행합니다.  

English로 진행하겠습니다. 이후 continue

[Minimal installation]을 체크하고 other options을 다 취소해 줍니다. continue

다음페이지는 그대로 두고 진행합니다. install now를 눌러줍니다. 

Where are you? 는 seoul, Who are you는 아래처럼 해주겠습니다. 비밀번호를 입력해야 다음으로 넘어갈 수 있습니다. 

이후 설치 후 재부팅해줍니다. 


3. Ubuntu network 설정

ubuntu에서 [setting] -> [enp0s8 설정]을 눌러줍니다. 

enp0s8 인터페이스는 192.168.200.102의 IP를 DHCP 서버로부터 할당받았습니다. 이를 정적 IP로 고정해 주기 위해 다음처럼 설정해 주겠습니다. 

 

Address는 192.168.200.102, Netmask는 255.255.255.0, Gateway는 192.168.200.1, DNS는 8.8.8.8로 설정해 주겠습니다. 그리고 Apply 해줍니다. 이후 설정에서 enp0s8의 토글을 한번 껐다 켭니다. 


4. ssh 연결

먼저 ubuntu를 업데이트하고 openssh-server를 설치해 주겠습니다. 

sudo apt update -y && sudo apt upgrade -y
sudo apt install openssh-server -y

ssh의 상태를 확인해 보겠습니다. active로 출력되면 ssh server가 동작하고 있다고 볼 수 있습니다.  

systemctl status ssh


● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-03-01 23:08:44 KST; 7min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 10187 (sshd)
      Tasks: 1 (limit: 4617)
     Memory: 4.1M
        CPU: 62ms
     CGroup: /system.slice/ssh.service
             └─10187 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

그리고 22번 포트번호를 열겠습니다. 

sudo ufw enable
sudo ufw allow ssh
sudo ufw status

이제 윈도우 터미널에서 접속해 보겠습니다. 다음 명령어로 접속할 수 있습니다. 

ssh ubuntu@192.168.200.102

이렇게 ssh접속이 됨을 확인할 수 있습니다. 이제 vscode로도 연결해 보겠습니다. 

remote - SSH 확장을 설치해 줍니다. 그리고 ssh옆에 +를 눌러서 

ssh ubuntu@192.168.200.102

위의 커맨드를 입력합니다. 업데이트할 SSH 구성 파일을 선택해 주고 접속하여 192.168.200.102의 주소로 접속합니다. 

이렇게 터미널과 vscode로 ubuntu 가상머신에 ssh로 접속을 했습니다.

728x90

댓글