pve主机可以非常轻量化的部署docker,就是lxc。可以这样理解,如果docker是软件的容器,那么lxc就是linux的容器,可以帮助我们部署各个版本发行版的linux。
lxc在系统调用上,因为直接使用的是pve的内核,cpu和内存的占用都是非常小的,所以可以轻量化部署,例如,pve lxc op 的性能几乎跟物理机安装op无差别,下载或者上传cpu占用很低,不像kvm,没有流量也会占3-5的cpu。 本文记录一下pve lxc op模板的制作方法和注意事项
第一步:
上传固件名称.img.gz固件至root目录后gzip解压
gzip -d 固件名称.img.gz
第二步:
1、如果是rootfs.img固件需要按照下面的方式进行解压
apt install squashfs-tools #安装解压包:
unsquashfs 固件名称.img #解压img固件
解压完成后在同级目录下会得到squashfs-root文件夹,然后进入该文件夹,进行打包
cd squashfs-root && tar zcf /var/lib/vz/template/cache/固件名称.tar.gz * &&cd .. # 打包至PVE中LXC模板路径
rm -rf 固件名称.img
2、其它固件则需要通过挂载镜像,得到内部文件:
mkdir op
root_partition=$((`fdisk -l /root/固件名称.img | grep .img2 | awk '{print $2}'` * 512))
mount -o loop,offset=$root_partition /root/固件名称.img /root/op
打包固件,弹出挂载,删除.img固件
cd op && tar zcf /var/lib/vz/template/cache/固件名称.tar.gz * &&cd .. # 打包至PVE中LXC模板路径
umount /root/op && rm -rf 固件名称.img
其它:
如果要在lxc容器中使用tun/tap设备,需要在配置文件中添加:
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file # 挂载设备
lxc.cgroup.devices.allow: c 10:200 rwm # 设置权限
配置文件路径为:/etc/pve/lxc/虚拟机编号.conf
重启生效
评论