VMware Fusion에서 Multipass로 마이그레이션한 이후, 이 클러스터를 일상적으로 다룰 때 참고하는 실전 가이드.

1. 현재 인벤토리

<table header-row="true"><tr><td>VM 이름</td><td>로그인 계정</td><td>역할</td><td>CPU</td><td>메모리</td><td>디스크</td><td>Tailscale IP</td></tr><tr><td>k3s-master</td><td>server1 (ubuntu도 존재)</td><td>control-plane</td><td>2</td><td>3GB</td><td>12GB</td><td>100.103.119.1</td></tr><tr><td>k3s-worker1</td><td>server2</td><td>worker</td><td>1</td><td>1.5GB</td><td>14GB</td><td>100.122.146.63</td></tr><tr><td>k3s-worker2</td><td>server3</td><td>worker</td><td>1</td><td>1.75GB</td><td>14GB</td><td>100.83.49.100</td></tr></table>

Multipass 자체 브리지 IP(192.168.252.x)도 있지만, k3s/Tailscale 트래픽은 전부 Tailscale IP(100.x.x.x) 기준으로 동작한다 (--flannel-iface tailscale0로 설치했기 때문). 브리지 IP는 신경 쓸 필요 없음.

호스트(Multipass가 도는 macOS): 100.112.104.24 (SSH: sangmin / 비밀번호는 별도 전달됨)

2. 기본 명령어

export PATH="/usr/local/bin:$PATH"

multipass list
multipass info k3s-master
multipass exec k3s-master -- <cmd>
multipass shell k3s-master
multipass stop k3s-master
multipass start k3s-master
multipass restart k3s-master
multipass transfer <local> <vm>:<path>
multipass delete k3s-master --purge

multipass exec은 기본 계정(ubuntu)으로 sudo 없이 실행되며, root 권한이 필요하면 sudo를 명시해야 한다.

3. 리소스 조정 — 반드시 정지 상태에서만

디스크/메모리 증설은 온라인 리사이즈가 안 된다. VM을 멈춘 상태에서만 multipass set이 먹힌다.

multipass stop k3s-worker2
multipass set local.k3s-worker2.memory=1.75G
multipass set local.k3s-worker2.disk=14G      # 디스크는 늘리기만 가능, 줄이기는 불가
multipass set local.k3s-worker2.cpus=2
multipass start k3s-worker2

주의: 리사이즈로 VM을 재기동하면, 그 노드에 떠 있던 파드는 재스케쥴링/재시작된다.

4. VM 생성 시 자주 격는 문제

4.1 이미지 캐시 해시 불일치

launch failed: Hash of .../ubuntu-24.04-server-cloudimg-arm64.img does not match ...

캐싱된 이미지가 손상된 경우 발생. 재시도하면 대개 자동으로 재다운로드되어 해결된다.

sudo rm -rf "/var/root/Library/Caches/multipassd/qemu/vault/images/<image-dir>"
multipass launch 24.04 --name <vm-name> --cpus <n> --memory <n>G --disk <n>G

4.2 디스크는 넣넣하게 잡을 것

앱 자체 용량뿐아니라 이미지 pull 용량까지 감안해야 한다. ArgoCD 하나만 해도 여러 컴포넌트용 이미지가 수백MB~1GB씩 나간다. 워커 디스크를 6GB로 잡았다가 DiskPressure로 파드가 통째로 멈춘 적이 있다. 워커 기준 최소 12~14GB 이상 권장.

4.3 비대화형 SSH/스크립트에서 sudo