众所周知,甲骨文的ARM机有24G内存,这么大内存不如生点小鸡玩。而且甲骨文重装系统什么的比较麻烦,开小鸡可以用来随便折腾,不怕把宿主机搞坏了。
本来打算在上面折腾下kvm套娃的,后来发现母鸡没开嵌套虚拟化,那就没戏了。只能玩玩容器虚拟化了。
不过说实话,这个LXD用起来还真挺舒服的,后面详细说说。这里先把配置步骤记录一下。
咱用的系统是Debian10,如果你用的是别的系统,可以先按这篇文章重装一个:https://lala.im/7905.html
装snapd,然后用snap安装lxd:
apt -y update apt -y install snapd snap install lxd
注:安装完之后退出终端,重新登录一次。
执行下面的命令初始化:
lxd init
整个流程如下,除了存储后端的配置选择dir,其他的全部回车保持默认即可:
Would you like to use LXD clustering? (yes/no) [default=no]: Do you want to configure a new storage pool? (yes/no) [default=yes]: Name of the new storage pool [default=default]: Name of the storage backend to use (ceph, btrfs, dir, lvm) [default=btrfs]: dir Would you like to connect to a MAAS server? (yes/no) [default=no]: Would you like to create a new local network bridge? (yes/no) [default=yes]: What should the new bridge be called? [default=lxdbr0]: What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: Would you like the LXD server to be available over the network? (yes/no) [default=no]: Would you like stale cached images to be updated automatically? (yes/no) [default=yes] Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
[重要]如果你的机器上安装了docker,docker往iptables里面自动添加的规则会导致lxd的容器没网,执行下面的命令修复:
iptables -A FORWARD -o lxdbr0 -j ACCEPT iptables -A FORWARD -i lxdbr0 -j ACCEPT
如果要删除上面的规则:
iptables -D FORWARD -o lxdbr0 -j ACCEPT iptables -D FORWARD -i lxdbr0 -j ACCEPT
现在就可以开一台小鸡了,首先查找你需要的系统镜像,这里我以opensuse为例:
lxc image list images: | grep opensuse
选择一个镜像创建小鸡,格式如下:
lxc launch images:[发行版]/[版本号]/[架构] [实例名]
比如说开一个opensuse15.2:
lxc launch images:opensuse/15.2/arm64 opensuse
进入你的小鸡:
lxc exec opensuse bash
简单测试一下网络:
下面是一些常用的管理命令:
lxc list # 列出所有小鸡的运行状态 lxc storage list # 列出存储信息 lxc start opensuse # 启动 lxc stop opensuse # 停止 lxc restart opensuse # 重启 lxc delete opensuse # 删除
你也可以限制小鸡的cpu和内存使用:
lxc config set opensuse limits.cpu=2 # 限制cpu lxc config set opensuse limits.memory=512MB # 限制内存 lxc config unset opensuse limits.cpu # 解除cpu限制 lxc config unset opensuse limits.memory # 解除内存限制
这里介绍一个lxd非常牛逼的功能,它可以把小鸡内的服务直接暴露出来。例如我在opensuse小鸡内先起一个nginx:
zypper in nginx systemctl start nginx
然后在宿主机上执行如下命令,添加一个名为nginx的proxy设备:
lxc config device add opensuse nginx proxy listen=tcp:0.0.0.0:55555 connect=tcp:127.0.0.1:80
检查宿主机的55555端口:
curl -I localhost:55555
可以看到nginx服务的回显:
HTTP/1.1 403 Forbidden Server: nginx/1.16.1 Date: Thu, 03 Jun 2021 12:20:31 GMT Content-Type: text/html Content-Length: 153 Connection: keep-alive
列出你给当前小鸡添加的设备:
lxc config device list opensuse
如果要删除刚才添加的proxy设备:
lxc config device remove opensuse nginx
文章最后,说说为啥我说lxd其实很好用。首先是安装用snap很简单,配置起来基本也是一路回车即可。。。
而且官方还提供了大量的系统镜像,几乎涵盖所有的linux发行版。。可以说你想用哪个,拉一个镜像下来启动就行了。并且还支持快照,可以随时给机器打快照。。
从lxd4.0开始其实还支持真正意义上的小鸡:虚拟机。基于kvm的。不过由于甲骨文的母鸡没嵌套我就没折腾了。
LALA
我什么都不卖了,告辞!
最新评论
5211314
能不能教我 一点不会