Multipass中文文档-创建实例

Posted 但老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Multipass中文文档-创建实例相关的知识,希望对你有一定的参考价值。

总目录(待翻译完完善)

1. 概览

2. 教程

3. 使用指引

   3.1 安装Multipass

     3.1.1 基于Linux

     3.1.2 基于macOS

     3.1.3 基于Windows

   3.2 管理实例

     3.2.1 创建实例

     3.2.2 修改实例

     3.2.3 使用实例

     3.2.4 使用实例命令别名

     3.2.5 与实例共享数据

     3.2.6 移除实例

   3.3 管理Multipass

     3.3.1 设置驱动

     3.3.2 使用Multipass服务授权代理

     3.3.3 远程使用Multipass

     3.3.4 提高挂载性能

     3.3.5 使用Packer打包Multipass镜像

     3.3.6 设置图像界面

     3.3.7 使用不同的macOS终端

   3.4 问题排查

     3.4.1 连接日志

     3.4.2 网络问题排查


如何创建实例

也见: launch, Instance

这篇文档会教你在Multipass用各种方式创建实例. 每一种方法都会直接使用命令launch, 每一种方法也都会展示不同的选项, 最终都是让你准确的获取想要的实例.

内容:

创建实例

也见: launch, info

执行下列命令创建Multipass实例

$ multipass launch
...
launched: keen-yak

这就启动了一个实例,并被随机命令为keen-yak. 运行命令multipass info查看具体信息, 我们发现这是一个Ubuntu LTS release, 名为18.04, 有1GB RAM, 1 CPU, 5GB硬盘.

$ multipass info keen-yak
Name:		  keen-yak
State:		  RUNNING  
IPv4:		  10.140.94.253
Release:	  Ubuntu 18.04.1 LTS
Image hash:   d53116c67a41(Ubuntu 18.04 LTS)
Load:		  0.00 0.12 0.18
Disk usage:   1.1G out of 4.7G
Memory usage: 71.6M out of 985.4M

使用具体镜像创建实例

也见: find, launch , info

运行下面命令看看哪些镜像可用:

$ multipass find
snapcraft:core18            18.04             20201111         Snapcraft builder for Core 18
snapcraft:core20            20.04             20210921         Snapcraft builder for Core 20
snapcraft:core22            22.04             20220426         Snapcraft builder for Core 22
snapcraft:devel                               20220525         Snapcraft builder for the devel series
core                        core16            20200818         Ubuntu Core 16
core18                                        20211124         Ubuntu Core 18
18.04                       bionic            20220523         Ubuntu 18.04 LTS
20.04                       focal,lts         20220505         Ubuntu 20.04 LTS
21.10                       impish            20220309         Ubuntu 21.10
22.04                       jammy             20220506         Ubuntu 22.04 LTS
daily:22.10                 devel,kinetic     20220522         Ubuntu 22.10
appliance:adguard-home                        20200812         Ubuntu AdGuard Home Appliance
appliance:mosquitto                           20200812         Ubuntu Mosquitto Appliance
appliance:nextcloud                           20200812         Ubuntu Nextcloud Appliance
appliance:openhab                             20200812         Ubuntu openHAB Home Appliance
appliance:plexmediaserver                     20200812         Ubuntu Plex Media Server Appliance
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 launch:

$ multipass launch kinetic
Launched: tenacious-mink

multipass info让你确认你启动的实例是你所选的镜像.

$ multipass info tenacious-mink
Name:           tenacious-mink
State:          Running
IPv4:           10.49.93.29
Release:        Ubuntu Kinetic Kudu (development branch)
Image hash:     5cb61a7d834d (Ubuntu 22.10)
Load:           0.10 0.06 0.02
Disk usage:     1.4G out of 4.7G
Memory usage:   161.8M out of 971.2M

使用自定名称创建实例

也见: launch … --name

使用自定名称创建实例, 加上--name选项到命令行:

multipass launch kinetic --name helpful-duck
launched: helpful-duck

使用自定CPU数, 硬盘, 和RAM创建实例

也见: launch … --cpu … --disk … --memory …

使用自定CPUS数, 硬盘和RAM大小需要使用下面的参数:

$ multipass launch -cpu 4 --disk 20G --memory 8G
Launched: giving-catfish

使用主要状态创建实例

译注:主要状态,原文primary status, 即最主要的那台机器,类似于主机

也见: launch … --name primary

实例如果在创建时被命名为primary, 那它就可以在创建时变成主要状态(primary status)

$ multipass launch kinetic --name primary
Launched: primary

关于主实例的更多信息,请参阅文档.


使用多项网络接口创建实例

也见: launch … --network

版本1.6.0及之后

Multipass可以使用额外的网络接口启动实例,通过--network选项即可. 需要通过networks命令实现, 并找到可用的主机桥接网络.

支持云端启动的版本2网络配置镜像支持, 并需要安装好netplan. 因此, 从17.10且核心16及之后可用, 并不包括snapcraft: core16. 并仅在以下场景:

--network选项可以使用多次, 每一次都需要加上一个额外的网络接口(除了总是显示的默认的那个). 每次使用需要带上想要接口的具体参数:

  • name – 唯一必需的值, 它让主机网络连接实例网络(可用值请见网络)
  • mode – 可选auto(默认)或manual; 当使用auto模式的时候, 实例会尝试自动配置网络.
  • mac – 设备使用的自定义MAC地址

这些属性可以按照<key>=<value>,...格式具体使用, 但是大多数使用案例中都只使用带有<name>参数的简洁形式. 下面是一个案例:

$ multipass launch --network en0 name=bridge0,mode=manual
Launched: upbeat-whipsnake

$ multipass exec upbeat-whipsnake -- ip -br address show scope global
enp0s3           UP             10.0.2.15/24
enp0s8           UP             192.168.1.146/24
enp0s9           DOWN

$ ping -c1 192.168.1.146 # 其他地方也是同样的网络
PING 192.168.1.146 (192.168.1.146): 56 data bytes
64 bytes from 192.168.1.146: icmp_seq=0 ttl=64 time=0.378 ms
[...]

在上面的案例中, 我们在实例中获取到下列接口:

  • enp0s3 – 默认接口, 实例用以连接外部网络, Multipass用以与实例通信;
  • enp0s8 – 这个接口在主机上连接到en0, 并且是自动配置的.
  • enp0s9 – 这个接口在主机上连接到bridge0, 为手动配置做准备.

路由

额外的接口用一个更高的路由度量值(200)来进行配置, 而默认的路由度量值是100. 因此, 如果他们对于目标IP来说更加匹配, 实例就会默认从中路由通过.

metrics 指路由度量值,即从当前计算机发送数据包到目的地址的开销是多少,用于路径选择时使用,metrics值越小表示路径越好
— 摘自百度知道

$ multipass exec upbeat-whipsnake -- ip route
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
default via 192.168.1.1 dev enp0s8 proto dhcp src 192.168.1.146 metric 200
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.1.0/24 dev enp0s8 proto kernel scope link src 192.168.1.146
192.168.1.1 dev enp0s8 proto dhcp scope link src 192.168.1.146 metric 200

$ multipass exec upbeat-whipsnake -- ip route get 91.189.88.181
91.189.88.181 via 10.0.2.2 dev enp0s3 src 10.0.2.15 uid 1000
    cache

$ multipass exec upbeat-whipsnake -- ip route get 192.168.1.13
192.168.1.13 dev enp0s8 src 192.168.1.146 uid 1000
    cache

使用自定DNS创建实例

在一些场景下, 默认使用系统提供的DNS并不高效. 当遇到这种情况的时候, 你可以使用--cloud-init选项到launch命令, 或是在实例启动之后修改网络配置.

cloud-init方法

也见: launch … --cloud-init

要在你的实例中使用自定义的DNS, 你可以使用下面云启动(cloud-init)机器码(snippet):

#cloud-config
bootcmd:
- printf "[Resolve]\\nDBS=8.8.8.8" > /etc/systemd/resolved.conf
- [systemctl, restart, systemd-resolved]

使用你想要的任何服务器DNS替换8.8.8.8即可. 然后你可以用下列命令启动实例:

$ multipass launch --cloud-init systemd-resolved.yaml

### netplan.io方法
在实例启动后, 你可以修改/etc/netplan/50-cloud-init.yaml文件, 加入nameservers词条:

network:
  ethernets:
    ens3:
      dhcp4: true
      match:
        macaddress: 52:54:00:fe:52:ee
      set-name: ens3
      nameservers:
      	search: [mydomain]
      	addresses: [8.8.8.8]

然后你可以测试下:

$ sudo netplan try
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 120 seconds
...

原文链接

How to create an instance

以上是关于Multipass中文文档-创建实例的主要内容,如果未能解决你的问题,请参考以下文章

Multipass中文文档-远程使用Multipass

Multipass中文文档-使用实例

Multipass中文文档-使用Packer打包Multipass镜像

Multipass中文文档-使用Packer打包Multipass镜像

Multipass中文文档-概览

Multipass中文文档-使用Multipass服务授权客户端