Multipass 是一款可运行于 Linux、Windows 和 MacOS 的轻量级虚拟机管理器,它专为希望使用单个命令即可启动全新 Ubuntu 环境的开发人员而设计。它在 Linux 上使用 KVM、在 Windows 上使用 Hyper-V、在 MacOS 上使用 HyperKit,以便以最小的开销运行虚拟机。它还可以在 Windows 和 MacOS 上使用 VirtualBox。Multipass 将协助你获取最新镜像,并持续保持更新。

为什么要用 Multipass

  1. 能够以最小的成本和资源在本地快速搭建具备完整 Ubuntu 功能小型虚拟机集群(如测试 K8s各类特性、数据库小集群等)
  2. 可以方便快速的做各类 Linux 试验,而不用担心把系统搞坏,重建一个新系统只要几分钟
  3. 实例通过命令行管理,对开发非常友好,每个实例IP固定
  4. 缺陷只能运行ubuntu系统,不能见centos系统

    安装

    https://multipass.run/ 下载安装包

    功能

    ```html multipass 命令行工具, 用于管理 ubuntu 实例。

参数: -h, —help 查看本帮助内容 -v, —verbose 增加日志显示的详细程度。 通过在短参数中增加 ‘v’ 来获取更多日志信息 最多支持4个等级,如: -vvvv。

可用的命令: delete 删除实例 exec 在实例中执行命令 find 查找并列出可用于创建实例的镜像 get 获取某个配置项 help 查看帮助 info 查看实例信息 launch 创建并启动实例 list 列出所有实例 mount 挂载文件夹到实例 purge 清除已删除的实例 recover 恢复已删除的实例 restart 重启实例 set 设置某个配置项 shell 通过 shell 连接实例 start 启动实例 stop 停止实例 suspend 挂起实例 transfer 在本机和实例之间传输文件 umount 移除实例中挂载的文件夹 version 查看版本号

  1. <a name="ZxA9d"></a>
  2. ## 常见问题
  3. <a name="IzuUY"></a>
  4. #### 最开始设置的内存或 CPU 数量小了,想扩容,怎么办?
  5. multipass 通过 /var/root/Library/Application\ Support/multipassd/multipassd-vm-instances.json 中的配置来管理实例,可直接在这个配置文件中修改:<br />mem_size 来增加或减少内存 num_cores 来增加或减少CPU核心数<br />修改之前需要先停止 multipass 的进程,原因是 multipass 会在被关闭的时候将各个实例的状态写入到配置文件,所以在没有关闭 multipass 进程的时候修改配置文件,会被覆盖。
  6. ```html
  7. # 停止 multipassd 进程
  8. sudo launchctl unload /Library/LaunchDaemons/com.canonical.multipassd.plist
  9. # 编辑 /var/root/Library/Application\ Support/multipassd/multipassd-vm-instances.json 文件
  10. # 需要 root 权限
  11. # 重新启动 multipassd 进程
  12. sudo launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist

电脑意外关机无法启动实例

实例的启动关闭状态也维护在 /var/root/Library/Application\ Support/multipassd/multipassd-vm-instances.json 文件中的 state 字段,当电脑意外关机,state 字段不会被正确的维护,导致无法启动或关闭实例,这时候,可以先停止 multipassd 进程,然后手动到配置文件中修改 state 为 0,即关机状态,保存配置文件,并启动 multipassd 实例即可,这时候就可以正常启动各个实例

实例之间传递文件

最简单的方式是通过挂载相同的文件夹到不同的实例中来共享文件。