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 网络问题排查
如何创建实例
这篇文档会教你在Multipass用各种方式创建实例. 每一种方法都会直接使用命令launch
, 每一种方法也都会展示不同的选项, 最终都是让你准确的获取想要的实例.
内容:
创建实例
执行下列命令创建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
使用具体镜像创建实例
运行下面命令看看哪些镜像可用:
$ 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创建实例
使用自定CPUS数, 硬盘和RAM大小需要使用下面的参数:
$ multipass launch -cpu 4 --disk 20G --memory 8G
Launched: giving-catfish
使用主要状态创建实例
译注:主要状态,原文primary status, 即最主要的那台机器,类似于主机
实例如果在创建时被命名为primary
, 那它就可以在创建时变成主要状态(primary status)
$ multipass launch kinetic --name primary
Launched: primary
关于主实例的更多信息,请参阅文档.
使用多项网络接口创建实例
版本1.6.0及之后
Multipass可以使用额外的网络接口启动实例,通过--network
选项即可. 需要通过networks命令实现, 并找到可用的主机桥接网络.
仅支持云端启动的版本2网络配置镜像支持, 并需要安装好netplan. 因此, 从17.10且核心16及之后可用, 并不包括snapcraft: core16
. 并仅在以下场景:
- 带LXD的Linux
- 带Hyper-V和VirtualBox的Windows
- 带Virtual Box 驱动的macOS
--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
方法
要在你的实例中使用自定义的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
...
原文链接
以上是关于Multipass中文文档-创建实例的主要内容,如果未能解决你的问题,请参考以下文章
Multipass中文文档-使用Packer打包Multipass镜像