Proxmox oolama lxc

Získání funkční a stabilní instalace Proxmoxu, která má také funkční možnosti GPU passthrough pro LXC kontejnery, je kritickým krokem, kterého musíte dosáhnout pro maximalizaci funkčnosti vašeho domácího serveru. Tyto kroky vám to přesně poskytnou.

V hostitelském uzlu přejděte do terminálu shellu a spusťte následující příkazy.

Kopie

apt update && apt upgrade -y && apt install pve-headers-$(uname -r) build-essential software-properties-common make nvtop htop -y
update-initramfs -u

Stáhněte si šablonu Debaian pro LXC do svého počítače

Vytvořte nový kontejner LXC. Vstupte do shellu kontejneru. Aktualizujte kontejner.

Najděte nejnovější ovladač pro vaše karty

wget pro stažení souboru .run

Kopie

wget HTTP://URLHERE
chmod +x xxxxx.run
./xxxxx.run --dkms

Klikněte na Ano pro kompletní instalaci

Jakmile to bude hotové, získáme cgroups spuštěním

Kopie

ls -al /dev/nvidia*

Pro jednu GPU (nvidia0) a univerzální skupiny pro nvidiactl, nvidia-uvm, nvidia-uvm-tools, nvidia-cap1 a nvidia-cap2 se zobrazí něco podobného. Všimněte si zde uvedených čísel 195, 509 a 234. Tato ID se pro vás BUDOU lišit a my si je všimneme a použijeme je v dalším kroku.

root@prox1:~# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 13. listopadu 01:23 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 13. listopadu 01:23 /dev/nvidiactl
crw-rw-rw- 1 root root 509, 0 13. listopadu 01:23 /dev/nvidia-uvm
crw-rw-rw- 1 root root 509, 1 13. listopadu 01:23 /dev/nvidia-uvm-tools

/dev/nvidia-caps:
celkem 0
drwxr-xr-x 2 root root 80 13. listopadu 01:23 .
drwxr-xr-x 22 root root 6360 13. listopadu 01:23 ..
cr——– 1 root root 234, 1 13. listopadu 01:23 nvidia-cap1 cr
–r–r– 1 root root 234, 2 13. listopadu 01:23 nvidia-cap2

Nyní přidáme tyto skupiny do kontejneru LXC pro průchod hardwaru.

Kopie

nano /etc/pve/lxc/105.conf

Přidejte tyto hodnoty k ID, která jste si dříve poznamenali, do souboru takto. Všimněte si umístění číslic 195, 234 a 509. Toto platí i pro JEDNU grafickou kartu, pokud máte více dalších.

lxc.mount.entry: /dev/nvidia1 dev/nvidia1 none bind,optional,create=file

řádky s inkrementací jako nvidia1,2,3 atd…

Kopie

lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 234:* rwm
lxc.cgroup2.devices.allow: c 509:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap1 dev/nvidia-caps/nvidia-cap1 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap2 dev/nvidia-caps/nvidia-cap2 none bind,optional,create=file

Vložte instalační soubor .run do kontejneru

Kopie

pct push 105 NVIDIA-Linux-x86_64-550.107.02.run /root/NVIDIA-Linux-x86_64-550.107.02.run

Poté vstupte do konzole/terminálu pro kontejner LXC. Nainstalujte instalační program .run s --no-kernel-modulespříznakem

Kopie

./NVIDIA-Linux-x86_64-550.107.02.run --no-kernel-modules

Instalace sady nástrojů NVIDIA Container Toolkit

Kopie

apt install gpg curl
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt update
apt install nvidia-container-toolkit

Upravte soubor config.toml, povolte no-cgroups a nastavte hodnotu z false na true.

Kopie

nano /etc/nvidia-container-runtime/config.toml
#no-cgroups = false
to
no-cgroups = true

Uložte a restartujte kontejner. Tím by se měla vaše GPU předat do LXC. Dále nastavíme Docker s Dockge a GPU passthru.

Instalace Dockeru pro Debian Bookworm

Kopie

apt install ca-certificates
apt update
apt install ca-certificates
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
chmod a+r /etc/apt/trusted.gpg.d/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nyní musíme povolit sadu nástrojů pro kontejnery od Nvidie, aby fungovala s Dockerem.

Kopie

nvidia-ctk runtime configure --runtime=docker

Nainstalujte Dockge Docker Container Manager. V tomto případě se váš datový adresář nachází v /opt/dockge.

Kopie

mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
docker compose up -d

Nyní můžete přejít do správce Dockeru a dokončit zbývající kroky. Pokud neznáte IP adresu LXC, zkontrolujte síťové nastavení kontejneru. Poté přidejte :5001.

Například moje adresa je 192.168.1.70:5001. Při první návštěvě si budete muset nastavit uživatelské jméno a heslo. Zapište si je. Nyní jste připraveni začít vytvářet kontejnery Docker pro OpenwebUI, Ollama, SearXNG a Tika.

Napište to pomocí Ollamy (zkopírujte to do zobrazení pro vytvoření nového textu), klikněte na Uložit, poté na Aktualizovat a nakonec na Spustit.

Kopie

version: "3.3"
services:
  ollama:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities:
                - gpu
    volumes:
      - ollama:/root/.ollama
    ports:
      - 11434:11434
    container_name: ollama
    image: ollama/ollama
    restart: always
volumes:
  ollama: {}
networks:
  dockge_default:
    external: true
  openwebui_default:
    external: true
  searxng_searxng:
    external: true
  tika_default:
    external: true

Napište to do OpenwebUI (zkopírujte to do zobrazení pro vytvoření nového), klikněte na Uložit, poté Aktualizovat a nakonec Spustit.

Kopie

version: "3.3"
services:
  open-webui:
    ports:
      - 7000:8080
    volumes:
      - open-webui:/app/backend/data
    container_name: open-webui
    restart: always
    image: ghcr.io/open-webui/open-webui:latest
volumes:
  open-webui: {}
networks:
  dockge_default:
    external: true
  ollama_default:
    external: true
  searxng_searxng:
    external: true
  tika_default:
    external: true

SearXNG a REDIS sestavují (zkopírujte to do zobrazení pro vytvoření nového), klikněte na Uložit, poté Aktualizovat a nakonec Spustit.

Kopie

version: "3.7"
services:
  redis:
    container_name: redis
    image: docker.io/valkey/valkey:7-alpine
    command: valkey-server --save 30 1 --loglevel warning
    restart: unless-stopped
    networks:
      - searxng_searxng
    volumes:
      - valkey-data2:/data
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
      - DAC_OVERRIDE
    logging:
      driver: json-file
      options:
        max-size: 4m
        max-file: "1"
  searxng:
    container_name: searxng
    image: docker.io/searxng/searxng:latest
    restart: unless-stopped
    networks:
      - searxng_searxng
    ports:
      - 7777:8080
    volumes:
      - ./searxng/img:/usr/local/searxng/searx/static/themes/simple/img:rw
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}/
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    logging:
      driver: json-file
      options:
        max-size: 4m
        max-file: "1"
networks:
  searxng_searxng:
    external: true
  #searxng: null
  dockge_default:
    external: true
  openwebui_default:
    external: true
  tika_default:
    external: true
  ollama_default:
    external: true
volumes:
  valkey-data2: null

Stiskněte tlačítko „Napsat“ (zkopírujte to do zobrazení pro vytvoření nového obsahu), klikněte na „Uložit“, poté na „Aktualizovat“ a nakonec na „Spustit“.

Kopie

version: "3.3"
services:
  tika:
    ports:
      - 9998:9998
    image: apache/tika:latest-full
    restart: always
networks:
  dockge_default:
    external: true
  openwebui_default:
    external: true
  ollama_default:
    external: true
  searxng_searxng:
    external: true

Gratuluji! Nyní máte VELMI pěkné nastavení pro váš AI Homelab! OpenWEBUI se nachází na adrese https://ipaddress:7000 a vyhledávač (SearXNG) se nachází na adrese http://ipaddress:7777

Napsat komentář