우분투의 최신버전을 받으려고 사이트에 방문을 했는데
기본 옵션이 multipass로 되어있는 것을 확인하였다. 따라가서 링크를 클릭해보면
cloude-init와 같이 public 클라우드마냥 우분투 VM을 single command로 얻을 수 있다고.
윈도우에서 설치가 가능하긴 한데, 로컬 환경에 virtual box가 설치되는 것을 안좋아해서 ubuntu 인스턴스 위에서 돌려본다.
# 설치는 그냥 한줄
sudo snap install multipass
# 인스턴스 생성은은 1분정도 기다리면 된다.
gold@gold:~$ multipass launch --name foo
Retrieving image: 39%
# 오...
gold@gold:~$ multipass list
Name State IPv4 Image
foo Running 10.196.118.37 Ubuntu 20.04 LTS
# 인스턴스에 접속도 쉽고
gold@gold:~$ multipass exec foo bash
ubuntu@foo:~$
ubuntu@foo:~$ whoami
ubuntu
# 인스턴스는 가상의 네트워크를 사용.
ubuntu@foo:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:d3:44:d2 brd ff:ff:ff:ff:ff:ff
inet 10.196.118.37/24 brd 10.196.118.255 scope global ens3
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fed3:44d2/64 scope link
valid_lft forever preferred_lft forever
코드형 인프라를 위해 cloud-init 도 지원하고있다.
multipass launch -n bar --cloud-init cloud-config.yaml
이미지 중 스냅크래프트 또한 지원하고 있다
snap 을 이용한 배포구성은 한번 연구를 해볼 필요가 있을 것 같다.
Image Aliases Version Description
snapcraft:core18 18.04 20201111 Snapcraft builder for Core 18
snapcraft:core20 20.04 20210921 Snapcraft builder for Core 20
multipass help 명령어로 다양한 방법을 지원하는데 궁금한것은 포트포워딩 기능과, 사양 할당 , 네트워크 구성 등이다.
1. 사양 변경
# 설정을 안해주면 core는 1, 메모리도 1gb 인것같다.
-c, --cpus <cpus> Number of CPUs to allocate.
Minimum: 1, default: 1.
-d, --disk <disk> Disk space to allocate. Positive integers, in bytes, or
with K, M, G suffix.
Minimum: 512M, default: 5G.
-m, --mem <mem> Amount of memory to allocate. Positive integers, in
bytes, or with K, M, G suffix.
Minimum: 128M, default: 1G.
-n, --name <name> Name for the instance. If it is 'primary' (the
configured primary instance name), the user's home
# 들어가서 확인해보니 그렇다. 실제 테스트배드로 설계한다면 이 부분을 주의해주어야 할듯.
ubuntu@foo:~$ cat /proc/cpuinfo | grep processor
processor : 0
ubuntu@foo:~$
ubuntu@foo:~$ free -m
total used free shared buff/cache available
Mem: 976 134 423 0 419 694
# 구글링해보니 k8s 관련 vm을 만들때 아래와같이 응용이 가능한것으로 보인다.
multipass launch --name master-k8s --cpus 2 --mem 2048M --disk 5G
multipass launch --name worker-1-k8s --cpus 2 --mem 2048M --disk 5G
multipass launch --name worker-1-k8s --cpus 2 --mem 2048M --disk 5G
2. 포트포워딩
multipass help launch 와 network를 찾아봐도 포트포워딩에 대한 정보는 없는것같다.
docker 처럼 무언가 클러스터로 연결하여 진입점을 정의하는게 아니라 베어메탈 서버를 서비스화 하는데에 중점을 준듯.
굳이 한다면 방화벽의 포트포워딩 기능을 쓰면 되는것같고, 그 외에도 다양한 포워딩 프로그램이 있으나 multipass의 취지에 맞지 않는 듯 하다.
3. 호스트브릿지 사용
이 방법을 쓰면 굳이 포트포워딩을 하지 않아도 호스트 네트워크에서 누구든지 붙을수 있다.
결론
redhat기반 os를 주로 사용하기에 메인으로 사용하기에는 어려울 것 같다.
그러나 ubuntu를 사용하여 다중 클러스터 테스트를 할때 매우 용이 할것으로 보임.
나머지 사용법은, 공식링크에서 확인