AutoDL私有云部署/课题组显卡服务器管理/GPU监控面板
AutoDL私有云部署
系统:ubuntu 24.04 LTS
分区方案
-
/boot:1G -
/boot/efi:1G -
swap:交换分区,根据自己物理内存来 -
/:固态硬盘,宿主机系统盘,100G。 -
/home:固态硬盘,docker容器系统盘所在分区 -
/hard:机械硬盘,docker容器数据盘所在分区
ip 设置
-
IP:192.168.33.xx
-
子网掩码:255.255.255.0
-
网关:192.168.33.1
-
DNS服务器:223.5.5.5/223.6.6.6
apt换源
更改后,更新
sudo apt update
sudo apt upgrade
或者在桌面中打开
软件更新器中选择源
ssh
sudo apt install openssh-server
sudo systemctl enable ssh
英伟达显卡驱动
禁用 Nouveau 驱动
echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot重启后验证
lsmod | grep nouveau
如果没有任何输出,说明 Nouveau 驱动已被成功禁用
安装驱动
Ubuntu系统安装5090D驱动详细步骤_5090 ubuntu驱动安装-CSDN博客
全新系统需要安装gcc
sudo apt install build-essential
搜索下载驱动文件
sudo chmod +x NVIDIA-Linux-x86_64-570.144.run
sudo ./NVIDIA-Linux-x86_64-570.144.run
- Register the kernel module with DKMS?
选择 Yes (推荐,方便系统内核更新后自动重建驱动) - Install NVIDIA’s 32-bit compatibility libraries?
选择 Yes (保持兼容性) - Which version do you want to install?
务必选择 MIT Licensed Open-Source Driver(MIT开源版)
(⚠️ 不要选 Proprietary 闭源版,否则容易黑屏!
然后删除驱动文件
宿主机安装1panel面板
sudo apt install curl
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

安装好后,清除下载的安装包
sudo rm -rf 1panel*
sudo rm quick_start.sh
1pctl管理工具命令行工具 - 1Panel 文档
ssh防爆破
wget https://launchpad.net/ubuntu/+source/fail2ban/1.1.0-1/+build/28291332/+files/fail2ban_1.1.0-1_all.deb
sudo dpkg -i fail2ban_1.1.0-1_all.deb
sudo systemctl enable fail2ban
rm fail2ban_1.1.0-1_all.deb
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
开启防火墙
sudo ufw enable
创建docker容器的系统盘和数据盘
主机有两个盘,
固态硬盘和机械硬盘

-
/home:在固态硬盘。容器的 系统盘 所在分区
-
mkdir /home/用户名/autodl-docker-root
-
-
/hard:在机械硬盘。容器的 数据盘 所在分区
mkdir /hard/autodl-docker-data
等安装worker agent后,在后台编辑主机时候填上路径

在创建容器实例时候会选择数据集盘,可以看到数据盘就是容器实例中的 /root/autodl-tmp目录
安装worker agent 与 ft agent(所有GPU服务器都装)

在
后台复制配置到/etc/privatecloud/worker-agent.yaml
sudo mkdir -p /etc/privatecloud/
sudo nano /etc/privatecloud/worker-agent.yaml
实现克隆实例的设置
克隆实例需要root,然而ubntu 24.04 LTS的 /etc/ssh/sshd_config默认为PermitRootLogin prohibit-password,只允许root密钥登录
如果
/etc/privatecloud/worker-agent.yaml设置了root密码,需要改成root密码登录
-
设置root密码
-
sudo passwd root
-
-
改成root密码登录
-
sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config sudo systemctl restart ssh
-
sudo curl -L -o /usr/local/bin/pct https://autodl-cloud.oss-cn-beijing.aliyuncs.com/privatecloud/tools/pct_x86_64
sudo chmod +x /usr/local/bin/pct
sudo pct install worker-agent --docker-root-dir /home/用户名/autodl-docker-root
如果报错,则先删除1panel安装过程添加的docker加速的配置文件,再安装worker-agent
sudo rm /etc/docker/daemon.json
注意:–docker-root-dir
一定要用绝对路径,相对路径会创建在/root/下的autodl-docker-root,占用宿主机系统空间(配了100G)不够用
所有部署了worker-agent的机器防火墙都需要放行20000-60000,因为克隆实例需要放行20000+ 的端口在1panel面板中防火墙放行端口

安装proxy-agent(只需在一台机器上安装)
同样在后台设置中找的proxy-agent配置文件复制到
/etc/privatecloud/proxy-agent.yaml
sudo mkdir -p /etc/privatecloud/
sudo nano /etc/privatecloud/proxy-agent.yaml
sudo pct install proxy-agent
注意:需要在防火墙放行
7007端口

在1panel面板中防火墙放行端口

多实例公用一个GPU
管理员在可以在
主机GPU里释放占用某个GPU,然后再开一个容器用同样的GPU可以看到
释放占用不会把已经在用的实例关机
在docker中使用Elasticsearch时(每台机器都需要设置)
在宿主机设置
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Easyiter组网实现外网访问(每台机器都需要装)

启动时设置网络
services:
easytier:
image: m.daocloud.io/docker.io/easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
hostname: 机器1_easytier # 不同机器需要更改以便区分
container_name: easytier
labels:
com.centurylinklabs.watchtower.enable: 'true'
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
command: -i 10.144.144.1 --network-name 网络名称 --network-secret 网络密码 -p tcp://public.easytier.cn:11010
-i :指定ip
-d :DHCP
-p:指定公共服务器
设置
网络名称和网络密码
- 机器1:10.144.144.1
- 机器2:10.144.144.2
- 机器3:10.144.144.3
在web控制台设置网络(推荐)
services:
easytier:
image: easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
hostname: 机器1_easytier # 不同机器需要更改以便区分
container_name: easytier
labels:
com.centurylinklabs.watchtower.enable: 'true'
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
command: -w web控制台的用户名 -p tcp://public.easytier.cn:11010
在EasyTier web控制台注册账号,然后填写上面的用户名
加入虚拟局域网
由于服务器192.168.33.xx为局域网IP地址,因此,想访问内网设备,需要内网穿透
内网穿透方案:
- p2p:点对点连接
- 中继:需要有公网ip的服务器转发内网数据
原理:用公益的公网服务器帮助不同设备建立p2p连接,无法建立则使用中继转发
下载链接:https://github.com/EasyTier/EasyTier/releases

- 网络名称:
上面设置的网络名称 - 网络密码:
上面设置的网络密码 - 主机名:自己电脑名称,随意

然后点击运行网络,可以看到与内网服务器建立点对点连接了

机器1:
192.168.33.32替换成10.144.144.1

例如从上图中复制的:ssh -p 24203 root@
192.168.33.32改成 ssh -p 24203 root@10.144.144.1

由于JupyterLab、AutoPanel有加密,通过以上更换为组网IP的方法无法访问,因此只适用于vscode、ssh等工具进行外网访问
服务器集群监控面板
zibingo/server-monitor-panel: 服务器集群监控面板
对大家有用的话,可以给个
star吗,谢谢!

更多推荐



所有评论(0)