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换源

Ubuntu - USTC Mirror Help

更改后,更新

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

下载 NVIDIA 官方驱动 | NVIDIA

搜索下载驱动文件​

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密码登录

  1. 设置root密码

    1.  sudo passwd root
      

      在这里插入图片描述

  2. 改成root密码登录

    1.  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控制台注册账号,然后填写上面的用户名

EasyTier 公共服务器列表

加入虚拟局域网

由于服务器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吗,谢谢!

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐