目前折疼 pve lxc 遇到的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
moxuanyuan
V2EX    Linux

目前折疼 pve lxc 遇到的问题

  •  
  •   moxuanyuan 2023-07-25 22:30:19 +08:00 3942 次点击
    这是一个创建于 813 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是在一台 arm vps 上安装 pve 来管理 lxc ,下面遇到的问题真花了很多时间才能找到问题所在。这些问题在 x86 平台,依然存在,并非 arm 平台的兼容性问题。

    当然,如果我用 x86 的 pve 会少走很多弯路。

    1. docker in lxc 的 storage driver 问题

    docker 在 lxc 中默认的 storage driver 是 vfs ,vfs 性能差和无层复用占用空间大等问题。网上有教程教如何将 storage driver 改为性能更好的 overlay2 。

    但问题来了,几乎所有教程都没有提及到要 docker in lxc 使用 overlay2 ,宿主机内核必须要是 5.11 及以上才能应用成功,否则 storage driver 改为 overlay2 后,docker 无法启动。

    而 debian 11 默认安装的内核是 5.10 ,这样导致类似我这样的小白,花了大量时间研究这个问题,才无意中发现问题所在,过程是非常痛苦及浪费时间。

    2. pve 8 与 lxc 官方某些镜像的兼容性问题

    刚开始,我是用 pve 7 arm 版(佛西大佬维护的版本),因为 pve 官方的 ct 模板并不提供 arm 版,所以我只能去 linuxcontainers.org 下载 arm 的镜像(我下的是 debian 12 ),然后创建 lxc 容器。

    创建过程没什么问题。后来因为上面 storage driver 问题通过升级内核解决后,我就直接将 arm vps 重装 debian 12 ,然后安装 pve 8 。依然用 linuxcontainers.org 下载 arm 的镜像去创建容器,但此时无法创建成功,

    错误信息提示“unable to open file '/etc/network/interfaces.tmp.13283' - No such file or directory”,无论 debian 11 还是 12 的镜像都一样有这个问题。

    我尝试在一台 x86 pve 8 的主机使用 linuxcontainers.org 下载 x86 的镜像去创建容器,也有同样问题。但 x86 pve 8 使用 pve 官方的 debian 12 x86 镜像,是没有问题,可以创建成功。

    我在上网搜索了一下,在 forum.proxmox.com 也有几个人提及这个问题( 提及的是 mint 和 debian 镜像 ),发贴日期都是最近几个月。

    后来,我发现在 pve 8 arm 可以使用 alpine 镜像创建成功。奇怪的是,之前 pve 7 arm 版中使用 alpine cloud 镜像,重启容器后网络配置都被还原。

    所以这些兼容性问题,真是令人头疼.

    23 条回复    2023-08-09 11:20:27 +08:00
    ltkun
        1
    ltkun  
       2023-07-25 22:41:19 +08:00
    工欲善其事 在 arm 下的 lxc 里面还要讲性能有点过分了哈
    我现在两台 128G 的家用机组的 pve 在考虑要不要上服务器 内存上 256 512 1024 才好玩
    cest
        2
    cest  
       2023-07-25 22:45:37 +08:00
    你图免费的 arm vps
    他们图小白鼠
    lhbc
        3
    lhbc  
       2023-07-25 23:12:12 +08:00
    如果这么简单就能跑在 arm 上,官方可能早就支持了
    要玩 homemade 还是有门槛的

    图简单就跑 docker 呗
    flyqie
        4
    flyqie  
       2023-07-25 23:39:31 +08:00 via Android
    其实。。

    主要的原因是你对 lxc 不熟。

    不建议用任何 pve 非官方版本,因为可能会出现很多不兼容问题,尤其是新手,遇到问题根本没法处理,走一堆弯路。
    flyqie
        5
    flyqie  
       2023-07-25 23:42:46 +08:00 via Android
    @lhbc #3

    其实 pve 官方想移植的话 lxc 这块不难,qemu 这块没深入研究过,但应该也没啥特别大的难点。

    主要是没必要,目前 pve 用户主要还是 x86 ,极少数会上 arm ,为 arm 没有特别大的实用意义。
    lhbc
        6
    lhbc  
       2023-07-25 23:48:59 +08:00
    @flyqie #5 我觉得主要是工作量的问题,毕竟使用的底层技术都已经移植到 ARM64
    就是不知道各种管理工具、接口需要多少时间去适配和测试了
    moxuanyuan
        7
    moxuanyuan  
    OP
       2023-07-25 23:50:23 +08:00
    @lhbc #6 我上面提及的问题,似乎跟 arm 没关,x86 也会遇到
    moxuanyuan
        8
    moxuanyuan  
    OP
       2023-07-25 23:51:18 +08:00
    @flyqie #4 哈哈,没办法,公司有一台 arm vps 将在 7.31 到期,不续费,我拿来练手
    flyqie
        9
    flyqie  
       2023-07-25 23:52:36 +08:00 via Android
    @lhbc #6

    是的,受众太小。。
    flyqie
        10
    flyqie  
       2023-07-25 23:53:21 +08:00 via Android
    @moxuanyuan #8

    公司上 arm vps 干啥用的。。

    挺好奇,正常来说 x86 应该能满足需求吧?
    moxuanyuan
        11
    moxuanyuan  
    OP
       2023-07-25 23:59:28 +08:00
    @flyqie #10 就是买来测试,便发现鸡肋,就不用
    bt7vip
        12
    bt7vip  
       2023-07-26 00:07:30 +08:00 via Android
    你的矛盾点在 lxc ,而且特权容器会污染宿主内核,有些调用内核的应用只能开特权容器,包括挂载宿主文件夹,这些限制个人认为已经将 lxc 的选择降到很低,目前,我是将
    bt7vip
        13
    bt7vip  
       2023-07-26 00:12:52 +08:00 via Android
    lxc 仅用于不需要内核,不需要特权的应用,特权容器只将宿主存储用 nfs 共享出去,其他涉及调用内核的应用用发行版 cloud 镜像起虚拟机,debian 的虚拟机起来只需要几百兆的内存。

    而且官方不建议 lxc 装 docker ,凡事从简单到复杂,上来就死磕容易得不偿失,浪费大量时间
    Jirajine
        14
    Jirajine  
       2023-07-26 00:26:24 +08:00
    那你就直接用 lxc ,不要用 pve 。
    moxuanyuan
        15
    moxuanyuan  
    OP
       2023-07-26 00:48:56 +08:00
    @bt7vip #12 docker in lxc 可以非特权,目前在 x86 上运行没遇到问题,arm 还在测试中
    greenskinmonster
        16
    greenskinmonster  
       2023-07-26 09:43:42 +08:00
    @bt7vip #13 "官方不建议 lxc 装 docker" 这个来源是哪?什么理由呢?
    moxuanyuan
        17
    moxuanyuan  
    OP
       2023-07-26 09:50:40 +08:00
    greenskinmonster
        18
    greenskinmonster  
       2023-07-26 10:05:13 +08:00
    @moxuanyuan #17 看到了,谢谢。不过我觉得 lxc 里面的 docker 还是挺方便的,尤其是 plex 这种需要使用宿主机显卡硬件解码的场景。宿主机隔离和实时迁移对家庭环境来说反而不是很必需,更适用于业务生产环境。
    Masoud2023
        19
    Masoud2023  
       2023-07-26 15:38:10 +08:00
    hos 发布这个内容需要你已经注册满 1004 天 tloc 来的?

    大家都是裸机直接跑 pve ,你这么嵌套三层到底有什么意义我没想通。

    要是逻辑+lxc 里面跑 docker 我确实能理解。VPS 玩容器化就老老实实跑 docker ,要图形面板就装个 portainer ,非要**在 VPS 上**折腾那个 pve 有什么意义?
    faninx
        20
    faninx  
       2023-08-07 11:18:27 +08:00
    为啥我 docker in lxc 的 storage driver 是 overlay2 ,反而遇到了一些问题,比如 nginx-proxy-manager 不能用,搜解决方案是让我换 vfs 。
    moxuanyuan
        21
    moxuanyuan  
    OP
       2023-08-07 11:26:50 +08:00
    @faninx #20 核 5.11 以上就是 overlay2
    moxuanyuan
        22
    moxuanyuan  
    OP
       2023-08-07 11:27:35 +08:00
    @faninx #20 我 docker in lxc ,overlay2 ,用 nginx-proxy-manager
    ccxuy
        23
    ccxuy  
       2023-08-09 11:20:27 +08:00
    @Masoud2023 我有个别的需求不知道好不好实现,有些物理机不受控,但是分配了几台可以自己控制的虚拟机,里面可能自己还要再启动虚拟机验证东西,最好能有个 UI 面板能管理 qemu 机器,通过几种模板来启动,不知道能实现么?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5331 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 07:03 PVG 15:03 LAX 00:03 JFK 03:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86