들어가며

Kubernetes 클러스터를 학습하기 위해 ARM 서버에 KVM 가상화 환경을 구축했습니다. 이 글에서는 첫 번째 단계로 VNC 서버와 KVM 패키지 설치, 그리고 WiFi 브릿지 네트워크 설정까지 다룹니다.

서버 환경

항목사양
서버원격 ARM 서버
CPU20코어 (ARM64, aarch64)
메모리가용 105GB
디스크여유 758GB
OSUbuntu 24.04.4 LTS
네트워크WiFi (wlP9s9, 192.168.1.100/24)

목표

  • ✅ GUI 원격 접속을 위한 VNC 서버 설치
  • ✅ KVM 가상화 환경 구축
  • ✅ 네트워크 환경 준비 (NAT 네트워크)

1. VNC 서버 설치

원격에서 GUI 환경으로 VM을 관리하기 위해 VNC 서버를 설치합니다.

1-1. 데스크톱 환경 설치 (XFCE)

XFCE는 가볍고 빠른 데스크톱 환경입니다.

1
2
sudo apt update
sudo apt install -y xfce4 xfce4-goodies

1-2. TigerVNC 서버 설치

1
sudo apt install -y tigervnc-standalone-server tigervnc-common

1-3. VNC 비밀번호 설정

1
2
3
4
mkdir -p ~/.vnc
vncpasswd
# 비밀번호 입력 (8자 이내)
# view-only 비밀번호는 'n' 선택

1-4. VNC 시작 스크립트 생성

1
2
3
4
5
6
7
8
cat > ~/.vnc/xstartup << 'EOF'
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
EOF

chmod +x ~/.vnc/xstartup

1-5. VNC 서버 시작

1
vncserver :1 -geometry 1920x1080 -depth 24 -localhost no

⚠️ 주의: -localhost no 옵션을 빼면 127.0.0.1에만 바인딩되어 외부 접속이 불가능합니다.

1-6. 접속 확인

1
2
ss -tlnp | grep 5901
# 0.0.0.0:5901 출력되면 정상

접속 정보:

  • 주소: 서버주소:5901
  • 비밀번호: vncpasswd로 설정한 비밀번호

2. KVM 패키지 설치

2-1. KVM 지원 확인

1
2
ls -la /dev/kvm
# crw-rw----+ 1 root kvm ... /dev/kvm 출력되면 지원됨

2-2. KVM 및 가상화 도구 설치

1
2
3
4
5
6
7
8
9
sudo apt install -y \
    qemu-kvm \
    libvirt-daemon \
    libvirt-daemon-system \
    libvirt-clients \
    bridge-utils \
    virtinst \
    virt-manager \
    virt-viewer

설치되는 패키지:

  • qemu-kvm: KVM 하이퍼바이저
  • libvirt-daemon: 가상화 데몬
  • virt-manager: GUI 가상머신 관리 도구
  • virt-viewer: 가상머신 콘솔 뷰어

2-3. 사용자 그룹 추가

1
2
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

2-4. libvirtd 데몬 활성화

1
2
sudo systemctl enable libvirtd --now
sudo systemctl status libvirtd

3. 네트워크 환경 준비

NAT 네트워크 사용

libvirt는 기본적으로 default 네트워크(NAT)를 제공합니다. WiFi 환경에서 macvlan 브릿지를 시도했으나, Layer 2 브릿지 제한으로 인해 VM에서 외부 네트워크 접근이 불안정했습니다.

해결책: NAT 네트워크 사용

  • VM은 192.168.122.0/24 대역 사용
  • 호스트를 게이트웨이로 외부 통신
  • apt update, 패키지 설치 등 정상 작동

3-1. default 네트워크 확인

1
sudo virsh net-list --all

출력 예시:

 Name      State    Autostart   Persistent
--------------------------------------------
 default   active   yes         yes

이미 활성화되어 있으면 별도 설정이 필요 없습니다.

3-2. default 네트워크 시작 (비활성화 상태인 경우)

1
2
sudo virsh net-start default
sudo virsh net-autostart default

3-3. 네트워크 정보 확인

1
sudo virsh net-dumpxml default

주요 설정:

  • 네트워크 대역: 192.168.122.0/24
  • 게이트웨이: 192.168.122.1
  • DHCP 범위: 192.168.122.2 ~ 192.168.122.254

WiFi 브릿지를 시도하지 않는 이유

WiFi 환경에서 macvlan 브릿지를 구성하면:

  • ❌ VM에서 apt update 실패
  • ❌ 외부 네트워크 불안정
  • ❌ Layer 2 브릿지 제한

NAT 네트워크를 사용하면:

  • ✅ 안정적인 외부 통신
  • ✅ DHCP 자동 할당
  • ✅ 고정 IP 설정 가능 (netplan)

검증

VNC 접속 테스트

VNC 클라이언트(RealVNC, TigerVNC Viewer 등)로 접속:

  • 주소: 서버주소:5901
  • 비밀번호: 설정한 비밀번호

KVM 설치 확인

1
2
sudo systemctl is-active libvirtd
# active 출력되면 정상

네트워크 확인

1
2
sudo virsh net-list --all
# default가 active 상태여야 함

다음 단계

1단계 완료 후, VNC로 GUI 접속하여:

  1. virt-manager 실행
  2. VM 3개 생성 (k8s-master, k8s-worker1, k8s-worker2)
  3. 각 VM에 Ubuntu Server 24.04 ARM64 설치
  4. 네트워크는 default (NAT) 선택
  5. 고정 IP 설정 (192.168.122.10/11/12)
  6. Kubernetes 클러스터 구축

다음 글에서는 VM 생성, 네트워크 설정, Kubernetes 클러스터 전체 구축 과정을 다룹니다.


참고 자료