实现带有Nvidia GPU+Rootless Podman+Docker+Systemd+自动驱动注入支持的systemd nspawn容器

在AI计算集群等场景中,系统级容器的稳定部署、GPU资源高效透传及多容器运行时兼容是核心需求,传统容器方案要么无法良好支持systemd服务管理,要么GPU透传配置复杂、需在容器内重复安装驱动,且难以兼顾Rootless Podman与Docker的二级容器运行需求。本文针对这一现状,详细阐述一套集成Nvidia GPU透传、自动驱动注入、systemd-nspawn容器管理及多二级容器运行时的完整方案,该方案已在某高校AI计算集群中稳定运行数月,可有效降低集群容器化部署的复杂度,提升资源利用率。

针对传统容器部署存在GPU透传配置繁琐、需在容器内额外安装驱动导致环境冗余、systemd支持不足、二级容器运行时兼容性差及Rootless模式适配困难等痛点,本方案核心优势在于无需在容器内安装GPU驱动,可动态扫描并挂载NVIDIA库和工具,完美支持GPU透传与CDI驱动注入,兼容Docker与Rootless Podman两种二级容器运行时,同时通过脚本实现systemd-nspawn容器的自动监控与管理,简化集群部署与运维成本。

功能特性:

  • 多级容器的 NVIDIA GPU 透传支持,支持 DinD/PinD 模式
  • ✅ 动态扫描 NVIDIA 库和工具,不需要在容器内安装 GPU 驱动,容器驱动自动跟随宿主机更新
  • ✅ 真正的系统级容器,完美支持 systemd 服务管理,同时无Docker一级容器方案的存储冗余、可靠性差等诸多弊端。
  • ✅ 支持 Docker 和 Podman 二级容器运行时,容器内可以再运行容器,支持 CDI 方式的 NVIDIA GPU 驱动注入
  • ✅ 多节点集群支持,自动配置跨节点路由,支持宿主集群NFS。
  • ✅ 支持 Rootless Podman 容器运行时,安全性风险低。
  • ✅ 自动监控和管理 systemd-nspawn 容器。

点击阅读全文 →

手动保留常用端口,解决 Windows 端口被 Hyper-V / WinNAT 占用的问题

对于 Windows 10 及 Windows 11,当启用 Hyper-V 或者虚拟机平台后,Windows NAT 服务会随机保留一些端口以便于提供 NAT (网络地址转换) 服务,以实现虚拟机的上网。这些端口范围是随机确定的,因此很容易导致开发时遇到端口占用问题。比如会遇到以下错误:

  • Error: listen EADDRINUSE: address already in use :::3000
  • 以一种访问权限不允许的方式做了一个访问套接字的尝试。
  • An attempt was made to access a socket in a way forbidden by its access permissions

除此以外,还可能会遇到明明服务启动成功但是却访问不了的问题,这也很有可能是因为端口被 WinNAT 给占了。

解决方案

网络上普遍建议重新设置一下「TCP 动态端口范围」(如文章 解决 Windows 10 端口被 Hyper-V 随机保留(占用)的问题 ),但是这种方法并不总是有效,因为你并不知道自己未来会即兴用到哪些端口,如果端口分的少了,又会导致其他问题,比如因为可用端口不够用而妨碍上网。

好在,Windows有一个很有趣的特性,就是用户可以 自行保留端口 给用户态程序使用。被用户保留的端口只能被用户态程序分配使用,却不能被内核驱动程序和服务使用。比如我设置保留 1080 端口后,Clash 这类普通用户态程序可以直接申请到这个端口,但是 IIS、WinNAT 等内核驱动程序和服务试图申请时却会被系统拒绝。这样一来,就可以避免端口被 WinNAT 占用的问题。

点击阅读全文 →

免Telent/TTL屏蔽运营商新版光猫的远控、TR069和RMS,获取动态随机超级管理员密码并固化权限

前言

在校园网、小区网等环境中,运营商的光猫通常会被 Technical Report - 069(TR069)和远程维护系统(RMS)远程管理,这些系统会在你不知情的情况下修改你的光猫配置,甚至会在你不知情的情况下重置你的光猫,导致你的网络配置失效,甚至设备全部失联。因此,屏蔽这些远程管理机制是非常有必要的。

然而,不幸地是,新版本的光猫早已修复了一切可以删除 TR069 和 RMS的漏洞,包括但不限于:

  • 不可能通过面板直接删除 TR069
  • 不可能通过 F12 或者改包、发包的方式变相删除 TR069 或修改接口的配置
  • RMS 的配置被写死,不可能通过修改配置文件的方式禁用或修改 RMS
  • 没有任何漏洞或后门可以在不拆机的情况下打开 Telenet
  • 甚至连拆机都不一定能的打开 Telenet,因为 uart_en=0

本文将介绍一种全新的思路:通过故意制造 IP 冲撞,使得 RMS 服务访问异常,从而达到光猫不能正常拉取远程配置的目的。本方法不仅可以防止配置被远程修改,还能防止局端修改你的光猫超级管理员密码,以实现权限的固化,以解决我在 V2EX 提出的这个问题

点击阅读全文 →

超低成本廉价考研教程:如何用小于¥500甚至¥300的开销考个研

在本科学历日渐贬值时代,读研基本成了一个日常话题,然而考研成本甚高,即使是不参与线下培训班、纯网课也往往需要花费万元以上。正好老早就有线下好友吐槽我博客技术文太多 哪有那么多啊,我真的从来都不写复杂技术的文章的啊,乘着手上的拟录取通知还热乎,今天就来分享分享如何用超低成本考研。

我的考研开销情况:

类目 花费(人民币/元) 备注
书本 249.65 126.41(13本书,pdd)+ 123.24(5本书,正版)
初试报名费 180
耗材(纸、笔等) 25 有优惠券那就买纸罢
网课 0
复试费 0 目标院校不收复试费,另外收费院校的复试通知被我鸽了
总计 454.65 这个开销可以更小,至少可以再少 100

生草的是,学信网上关于考研开销的调查表甚至没有这么低的选项。

点击阅读全文 →