LXC 内核开启 ip_vs 模块

在PVE中,如果需要在 LXC 中开启 ip_vs 模块,直接 modprobe ipvs 是不行的,因为其并未存在于 LXC 内核模块中。

既然模块不存在 ,那就需要首先安装模块,很遗憾,这是一个错误的思路,因为安装内核模块的唯一方法似乎只能是编译安装,所以需要编译Linux内核,这个相当折腾人,即使编译成功了,也会因为版本不兼容而无法安装。这时,就想要去 checkout 到相应的内核源码,然后设置编译选项为当前 LXC 环境的特定版本号,比如 5.15.85-1-pve ,这个版本号是发行版,官方内核并不存在此版本号,官方只有5.15.X,而其中的X并不是85,所以这是一个死胡同;

即使编译成功了,版本也强制设定,安装仍是个问题,其中一个问题就是用编译的内核去覆盖当前内核,做一个整体安装,但这样和安装虚拟机又没什么区别,意义不大。因为我只想安装这一个模块,而不是整个内核。这是一个风险所在,因而没有尝试

最后得到一个简单的实用方法,那就是使LXC与宿主机共享内核模块,但存在 LXC与宿主机内核版本不一致问题,需要在PVE宿主机中设置LXC选项:

nano /etc/pve/lxc/主机编号.conf , 添加以下内容:

lxc.include = /usr/share/lxc/config/nesting.conf
lxc.mount.auto = cgroup:mixed
lxc.autodev = 1

添加的时候注意,不能直接复制粘贴代码,换行会丢失,甚至导致文件中原有的换行也丢失。先放到记事本中整理下格式,然后复制过去,如果还不行,就只好手敲,好在只有三行。

然后重启LXC。重启后发现LXC无法联网,VNC进去发现 网卡 down 掉了,然后运行/sbin/ifup eth0 启动网卡,但没有IP地址,只好强制定制了一个:ip address add 192.168.1.100/24 dev eth0

终于勉强启动了。由于我的PVE没有组虚拟网,所有主机网卡都桥接到了路由器所有的网络,因此地址是物理内网的IP,而不是虚拟网IP。

最后在LXC中安装模块 : modprobe ipvs ,然后 lsmod | grep ip_vs ,就输出了。

至此,终于在LXC中用上了 ip_vs ,其过程相当坎坷,值得一记。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇