推荐一款M1芯片电脑快速搭建集群的虚拟机软件
source link: https://www.fly63.com/article/detial/11789
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
扫一扫分享
虚拟机软件太多了,出名的莫过于 VMware , VirutlaBox 以及 Parallels Desktop 。
我们使用虚拟机软件一般有两种用途:
- 安装不同于宿主机系统的拥有用户界面的操作系统,比如Windows安装桌面版 Ubuntu ,Mac安装 Windows 等,用于日常工作和生活的使用;
这一需求我目前使用 Parallels Desktop 来解决,在我本机上安装了 Windows 和 Ubuntu 的桌面版。 Parallels Desktop 除了贵,没有其他问题!
- 另一种是便于开发者快速创建和部署虚拟化开发环境(集群环境),本文推荐的虚拟软件就是这个作用。
之前我在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-wallaroo 是 Multipass 给 jammy 镜像实例随机起的名字,你也可以使用 --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 同样的效果。
通过 VirtualBox 对 Multipass 虚拟机进行可视化操作。
还有其他的一些功能需要读者朋友们自己发掘一下了,更多细节参见 官网 。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK