推薦一款M1電腦快速搭建集羣的虛擬機軟件

語言: CN / TW / HK

image-20220619220708778 虛擬機軟件太多了,出名的莫過於VMwareVirutlaBox以及Parallels Desktop

我們使用虛擬機軟件一般有兩種用途:

  1. 安裝不同於宿主機系統的擁有用户界面的操作系統,比如Windows安裝桌面版Ubuntu,Mac安裝Windows等,用於日常工作和生活的使用;

這一需求我目前使用Parallels Desktop來解決,在我本機上安裝了WindowsUbuntu的桌面版。Parallels Desktop除了貴,沒有其他問題!

image-20220620075136512

  1. 另一種是便於開發者快速創建和部署虛擬化開發環境(集羣環境),本文推薦的虛擬軟件就是這個作用。

之前我在Windows上都是使用VirtualBox+Vagrant的方式快速創建和銷燬虛擬機。現在我的工作主機換成了M1芯片的Mac,而VirtualBox並沒有給予適配。

最近發現了一款叫做Multipass的虛擬機軟件,重點是,我的M1電腦可以使用!接下來給大家分享一下使用心得。

1. 下載安裝Multipass

Mac下推薦使用brew安裝Multipass,免去了點擊下載,解壓以及安裝的步驟

brew install --cask multipass

安裝之後,查看是否安裝成功

➜ ~ multipass version multipass   1.9.2+mac multipassd  1.9.2+mac

2. 查看Multipass支持的鏡像

➜ ~ multipass find Image                       Aliases           Version         Description 18.04                       bionic            20220615         Ubuntu 18.04 LTS 20.04                       focal,lts         20220615         Ubuntu 20.04 LTS 21.10                       impish            20220609         Ubuntu 21.10 22.04                       jammy             20220609         Ubuntu 22.04 LTS anbox-cloud-appliance                         latest           Anbox Cloud Appliance charm-dev                                     latest           A development and testing environment for charmers docker                                       latest           A Docker environment with Portainer and related tools minikube                                     latest           minikube is local Kubernetes

注意Multipass只提供了Ubuntu的發行版鏡像,這對於開發人員開説並不算什麼缺點,至少對我是這樣的

3. 創建虛擬機

接下來我們選擇需要的鏡像版本來安裝Ubuntu實例,這裏以jammy(鏡像列表的Aliases一列)為例

➜ ~ multipass launch jammy Launched: boss-wallaroo

其中,boss-wallarooMultipassjammy鏡像實例隨機起的名字,你也可以使用--name來指定實例名稱。

~ multipass launch jammy --name chanmufeng-ubuntu Launched: chanmufeng-ubuntu

4. 操作虛擬機

4.1. 查看虛擬機列表

使用multipass info --all查看安裝的所有虛擬機

➜ ~ multipass info --all Name:           chanmufeng-ubuntu State:         Running IPv4:           192.168.64.3 Release:       Ubuntu 22.04 LTS Image hash:     746fd17e2944 (Ubuntu 22.04 LTS) Load:           0.02 0.02 0.00 Disk usage:     1.3G out of 4.7G Memory usage:   162.4M out of 961.9M Mounts:         -- ​ Name:           lucky-dog State:         Stopped IPv4:           -- Release:        -- Image hash:     746fd17e2944 (Ubuntu 22.04 LTS) Load:           -- Disk usage:     -- Memory usage:   -- Mounts:         --

執行結果表明,我電腦上有了2個實例,分別是chanmufeng-ubuntu(運行中)、lucky-dog(停止狀態)。

4.2. 進入虛擬機,執行命令

執行multipass shell 實例名 進入實例,如果實例未啟動,則會自動啟動

➜ ~ multipass shell lucky-dog Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-37-generic aarch64) ​ * Documentation: https://help.ubuntu.com * Management:     https://landscape.canonical.com * Support:       https://ubuntu.com/advantage ​ System information as of Sun Jun 19 21:06:43 CST 2022 ​ System load:             0.3203125 Usage of /:              29.8% of 4.77GB Memory usage:            20% Swap usage:              0% Processes:               100 Users logged in:         0 IPv4 address for enp0s1: 192.168.64.2 IPv6 address for enp0s1: fd96:8c7d:a0ba:459d:5054:ff:fea5:1ea3 ​ ​ 0 updates can be applied immediately. ​ ​ Last login: Tue Jun 14 13:41:27 2022 from 192.168.64.1 ubuntu@lucky-dog:~$ ~

然後就可以在lucky-dog中自由地玩耍了。

4.3. 停止/重啟虛擬機

```

暫停

➜ ~ multipass stop lucky-dog

啟動

➜ ~ multipass start lucky-dog ```

4.4. 移除實例到“回收站”

使用如下命令刪除實例

➜ ~ multipass delete chanmufeng-ubuntu

delete命令只是將chanmufeng-ubuntu實例標記為DELETED狀態而已,相當於放到了回收站,但是本身依然存在。

使用list命令看一下

➜ ~ multipass list Name State IPv4 Image chanmufeng-ubuntu Deleted -- Not Available lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS

如果後悔了,可以使用recover命令進行撤銷

➜ ~ multipass recover chanmufeng-ubuntu

再次使用list命令看一下

➜ ~ multipass list Name State IPv4 Image chanmufeng-ubuntu Stopped -- Not Available lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS

4.5. 徹底刪除實例

這一步相當於從“回收站”徹底刪除,當然了,前提是實例必須已經被放在了“回收站”。

➜ ~ multipass delete chanmufeng-ubuntu ➜ ~ multipass purge ➜ ~ multipass list Name State IPv4 Image lucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS

5. 其他進階功能

除了以上基本功能,Multipass還提供其他進階功能,本文只是提一嘴,更多細節,大家訪問官網查看一下文檔即可。

5.1. 自定義硬件配置

  • 可以自定義CPU核心數、硬盤大小以及內存大小等參數
  • 自定義網卡配置和DNS配置

5.2. 快速配置環境

虛擬機功能給我們帶來的好處就是對於實例,我們想建就建,想刪就刪。

可是刪了之後重新建立,難免很多軟件和工具需要重新進行配置,Mutipass提供了--cloud-init對容器進行初始化配置。

➜ ~ multipass launch --name ubuntu --cloud-init config.yaml

config.yaml是初始化配置文件,內容如下:

runcmd: - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - - sudo apt-get install -y nodejs

runcmd 可以指定容器首次啟動時運行的命令

5.3. 搭配VirtualBox

當然,這個功能不適合M1,但是在其他平台上搭配VirtualBox可以實現和Vagrant同樣的效果。

通過VirtualBoxMultipass虛擬機進行可視化操作。

還有其他的一些功能需要讀者朋友們自己發掘一下了,更多細節參見官網