QAnswer auf einer AWS EC2-Instanz installieren
Eine Instanz beschaffen
Starten Sie eine EC2-Instanz mit den entsprechenden Ressourcen.
Dieser Leitfaden verwendet Ubuntu Server 24.04 LTS (HVM) mit der g6e.xlarge Instanz.
| Instanzgröße | GPU | GPU-Speicher (GiB) | vCPUs | Speicher (GiB) | Speicher (GB) | Netzwerkbandbreite (Gbps) | EBS-Bandbreite (Gbps) |
|---|---|---|---|---|---|---|---|
| g6e.xlarge | 1 | 48 | 4 | 32 | 250 | Up to 20 | Up to 5 |
Wir stellen insgesamt 282 GB (250 GB + 32 GB) Speicher für die g6e.xlarge Instanz bereit, bestehend aus einem 32-GB-SSD-Volume kombiniert mit der ursprünglichen 250-GB-SSH.
Handhabung der 250-GB-SSD-Einbindung für g6e.xlarge
Bei g6e.xlarge Instanzen ist die 250-GB-SSD standardmäßig nicht eingebunden. Binden Sie sie manuell ein, um Docker-Image-Downloads zu ermöglichen.
Schritte zur Einbindung der SSD:
- 1. Führen Sie
lsblkaus, um alle Block-Geräte aufzulisten und das nicht eingebundene Volume zu identifizieren.lsblk - 2. Das Volume mit dem mkfs-Befehl und dem XFS-Dateisystem formatieren:
sudo mkfs -t xfs /dev/nvme1n1 - 3. Einen Einbindungspunkt-Ordner erstellen und das Volume einbinden:
sudo mkdir /home/$USER/.local sudo mount /dev/nvme1n1 /home/$USER/.local - 4. Führen Sie
lsblk -faus, um die UUID des eingebundenen Volumes anzuzeigen.lsblk -f
Die Einbindung dauerhaft machen:
- 1. Die /etc/fstab-Datei bearbeiten:
sudo vim /etc/fstab - 2. Den folgenden Eintrag am Ende der Datei hinzufügen und UUID sowie Benutzername ersetzen:
UUID=e4bc66e3-c793-4b54-ad00-e5a1e11c80ef /home/ubuntu/.local xfs defaults,nofail 0 0
Das eingebundene Volume für $USER zugänglich machen
sudo chown -R $USER:$USER /home/$USER/.localVolume-Einbindung ohne Probleme prüfen mit df -h
Die Ausgabe sieht ähnlich aus wie:
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 1.7G 29G 6% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 6.2G 1.1M 6.2G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 128K 3.6K 120K 3% /sys/firmware/efi/efivars
/dev/nvme0n1p16 881M 76M 744M 10% /boot
/dev/nvme0n1p15 105M 6.1M 99M 6% /boot/efi
tmpfs 3.1G 12K 3.1G 1% /run/user/1000
/dev/nvme1n1 233G 4.5G 229G 2% /home/ubuntu/.localContainer-Laufzeit-Speicher konfigurieren:
Speicherort für Docker-Images festlegen:
sudo ln -s /home/ubuntu/.local /var/lib/dockerNVIDIA-Treiber und NVIDIA Container Toolkit installieren
Überprüfen Sie, ob der NVIDIA-Treiber installiert ist, indem Sie nvidia-smiausführen. Falls nicht installiert, installieren Sie den Treiber vor der GPU-Nutzung.
- 1. Gehen Sie zu NVIDIA Driver Finder und geben Sie das GPU-Modell (
L40S) ein, um die richtige Distribution aus der Dropdown-Liste auszuwählen. - 2. Klicken Sie auf
Suchen. NVIDIA zeigt die empfohlene Treiberversion an — für denL40Sist das550.127.08. - 3. Laden Sie also den nvidia-driver-550 (550.127.08) herunter über:
sudo apt update sudo apt install nvidia-driver-550 # may take few minutes to build # Progress: [ 92%] [###########################################.........] - 4. Installieren Sie
nvidia-container-toolkitum GPU-Zugriff in Containern zu ermöglichen. Siehe die offizielle Dokumentation als Referenz.# Configure production repo: curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo 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' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # Update the packages list from the repository: sudo apt-get update # Install the NVIDIA Container Toolkit packages: sudo apt-get install -y nvidia-container-toolkit # Generate nvidia-.yaml (optional for docker, necessary for podman) sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml nvidia-ctk cdi list - 5. Bestätigen Sie nach dem Neustart, dass der Treiber funktioniert, indem Sie
nvidia-smiausführen:
Container-Laufzeit installieren
Installieren Sie entweder Docker oder Podman als Container-Laufzeit. Folgen Sie den jeweiligen Anweisungen unten:
Docker installieren
Folgen Sie dem offiziellen Docker-Installationsleitfaden um Docker zu installieren.
Podman installieren (Alternative zu Docker)
Folgen Sie dem offiziellen Podman-Installationsleitfaden um Podman zu installieren.
Installieren von podman-compose
Installieren Sie podman-compose für docker-compose-ähnliche Funktionalität. Weitere Informationen finden Sie in der offiziellen podman-compose-Dokumentation für Installationsschritte.
Beispiel-Installationsbefehl:
sudo apt install -y podman podman-composeStellen Sie sicher, dass sowohl Podman als auch podman-compose funktionieren:
podman --version
podman-compose --versionLösen Sie das Rootless-Container-Problem in Podman (überspringen, wenn als root ausgeführt wird):
sudo loginctl enable-linger $USERQAnswer installieren & bereitstellen
QAnswer wird als docker-compose-Datei bereitgestellt. Klonen Sie das Repository:
git clone https://gitlab.the-qa-company.com/qanswer-app/qanswer-bundle.gitNavigieren Sie in das qanswer-bundle Verzeichnis und folgen Sie dann den Schritten für Ihre Container-Laufzeit:
Schritte für Docker:
1. Führen Sie das Setup-Skript aus, um alle erforderlichen Container-Images zu laden. Verwenden Sie die Ihnen bereitgestellten Zugangsdaten:
QANSWER_REGISTRY_USER=<user-we-provide> \
QANSWER_REGISTRY_PASSWORD=<password-we-provide> \
VERSION=main source ./setup.sh --container_runtime docker --no_documentation2. Starten Sie das QAnswer-Bundle mit docker compose:
Docker-Befehl ausführen:
QANSWER_KEY=<qanswerKey-we-provide> \
VERSION=main docker compose up -d




