- Erste Schritte
- Netzwerkanforderungen
- Anforderungen und Installation für einen einzelnen Knoten
- Anforderungen und Installation für mehrere Knoten
- Nach der Installation
- Zugriff auf AI Center
- Bereitstellen eines AI Center-Mandanten
- Aktualisieren von Orchestrator- und Identity Server-Zertifikaten
- Ändern der PVC-Größe
- Hinzufügen eines neuen Knotens zum Cluster
- Offlineinstallation von ML-Paketen
- Konfigurieren des Clusters
- Konfigurieren des FQDN nach der Installation
- Sichern und Wiederherstellen des Clusters
- Verwendung des Überwachungs-Stacks
- Einrichten einer Kerberos-Authentifizierung
- Bereitstellen einer GPU
- Bereitstellen einer GPU
- Verwenden der Konfigurationsdatei
- Knotenplanung
- Migration und Upgrade
- Grundlegende Anleitung zur Fehlerbehebung
Eine GPU kann nur auf einem Agent-Knoten, nicht auf einem Serverknoten installiert werden. Verwenden oder ändern Sie das gpu_support-Flag nicht in der cluster_config.json. Folgen Sie stattdessen den Anweisungen unten, um dem Cluster einen dedizierten Agent-Knoten mit GPU-Unterstützung hinzuzufügen.
Currently, Automation Suite only supports Nvidia GPU Drivers. See the list of GPU-supported operating systems.
Cloud-spezifische Instanztypen für die Knoten finden Sie hier:
Follow the steps from Adding a new node to the cluster to ensure the agent node is added correctly.
For more examples on how to deploy NVIDIA CUDA on a GPU, check this page.
Installieren eines GPU-Treibers
-
Führen Sie den folgenden Befehl aus, um den GPU-Treiber auf dem Agent-Knoten zu installieren:
sudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo sed 's/$releasever/8/g' -i /etc/yum.repos.d/epel.repo sudo sed 's/$releasever/8/g' -i /etc/yum.repos.d/epel-modular.repo sudo yum config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo sudo yum install cudasudo yum install kernel kernel-tools kernel-headers kernel-devel sudo reboot sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo sed 's/$releasever/8/g' -i /etc/yum.repos.d/epel.repo sudo sed 's/$releasever/8/g' -i /etc/yum.repos.d/epel-modular.repo sudo yum config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo sudo yum install cuda -
Führen Sie den folgenden Befehl aus, um die Container-Toolkits zu installieren:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \\ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo sudo dnf clean expire-cache sudo yum install -y nvidia-container-runtime.x86_64distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \\ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo sudo dnf clean expire-cache sudo yum install -y nvidia-container-runtime.x86_64
Überprüfen Sie, ob die Treiber ordnungsgemäß installiert sind
Führen Sie den Befehl sudo nvidia-smi auf dem Knoten aus, um zu überprüfen, ob die Treiber ordnungsgemäß installiert wurden.
Nachdem der Cluster bereitgestellt wurde, sind zusätzliche Schritte erforderlich, um die bereitgestellten GPUs zu konfigurieren.
Zu diesem Zeitpunkt wurden die GPU-Treiber installiert und die GPU-Knoten dem Cluster hinzugefügt.
Hinzufügen der GPU zum Agent-Knoten
Führen Sie die beiden folgenden Befehle aus, um die contianerd-Konfiguration des Agent-Knotens zu aktualisieren.
cat <<EOF > gpu_containerd.sh
if ! nvidia-smi &>/dev/null;
then
echo "GPU Drivers are not installed on the VM. Please refer the documentation."
exit 0
fi
if ! which nvidia-container-runtime &>/dev/null;
then
echo "Nvidia container runtime is not installed on the VM. Please refer the documentation."
exit 0
fi
grep "nvidia-container-runtime" /var/lib/rancher/rke2/agent/etc/containerd/config.toml &>/dev/null && info "GPU containerd changes already applied" && exit 0
awk '1;/plugins.cri.containerd]/{print " default_runtime_name = \\"nvidia-container-runtime\\""}' /var/lib/rancher/rke2/agent/etc/containerd/config.toml > /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
echo -e '\
[plugins.linux]\
runtime = "nvidia-container-runtime"' >> /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
echo -e '\
[plugins.cri.containerd.runtimes.nvidia-container-runtime]\
runtime_type = "io.containerd.runc.v2"\
[plugins.cri.containerd.runtimes.nvidia-container-runtime.options]\
BinaryName = "nvidia-container-runtime"' >> /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
EOFsudo bash gpu_containerd.sh
cat <<EOF > gpu_containerd.sh
if ! nvidia-smi &>/dev/null;
then
echo "GPU Drivers are not installed on the VM. Please refer the documentation."
exit 0
fi
if ! which nvidia-container-runtime &>/dev/null;
then
echo "Nvidia container runtime is not installed on the VM. Please refer the documentation."
exit 0
fi
grep "nvidia-container-runtime" /var/lib/rancher/rke2/agent/etc/containerd/config.toml &>/dev/null && info "GPU containerd changes already applied" && exit 0
awk '1;/plugins.cri.containerd]/{print " default_runtime_name = \\"nvidia-container-runtime\\""}' /var/lib/rancher/rke2/agent/etc/containerd/config.toml > /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
echo -e '\
[plugins.linux]\
runtime = "nvidia-container-runtime"' >> /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
echo -e '\
[plugins.cri.containerd.runtimes.nvidia-container-runtime]\
runtime_type = "io.containerd.runc.v2"\
[plugins.cri.containerd.runtimes.nvidia-container-runtime.options]\
BinaryName = "nvidia-container-runtime"' >> /var/lib/rancher/rke2/agent/etc/containerd/config.toml.tmpl
EOFsudo bash gpu_containerd.sh
Führen Sie nun den folgenden Befehl aus, um rke2-agent neu zu starten
[[ "$(sudo systemctl is-enabled rke2-server 2>/dev/null)" == "enabled" ]] && systemctl restart rke2-server
[[ "$(sudo systemctl is-enabled rke2-agent 2>/dev/null)" == "enabled" ]] && systemctl restart rke2-agent
[[ "$(sudo systemctl is-enabled rke2-server 2>/dev/null)" == "enabled" ]] && systemctl restart rke2-server
[[ "$(sudo systemctl is-enabled rke2-agent 2>/dev/null)" == "enabled" ]] && systemctl restart rke2-agent
Aktivieren des GPU-Treibers nach der Installation
Führen Sie die folgenden Befehle von einem der primären Serverknoten aus.
Navigieren Sie zum Ordner UiPathAutomationSuite.
cd /opt/UiPathAutomationSuite
cd /opt/UiPathAutomationSuite
Bei der Online-Installation aktivieren
DOCKER_REGISTRY_URL=$(cat defaults.json | jq -er ".registries.docker.url")
sed -i "s/REGISTRY_PLACEHOLDER/${DOCKER_REGISTRY_URL}/g" ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl apply -f ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl -n kube-system rollout restart daemonset nvidia-device-plugin-daemonset
DOCKER_REGISTRY_URL=$(cat defaults.json | jq -er ".registries.docker.url")
sed -i "s/REGISTRY_PLACEHOLDER/${DOCKER_REGISTRY_URL}/g" ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl apply -f ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl -n kube-system rollout restart daemonset nvidia-device-plugin-daemonset
Aktivieren bei der Offline-Installation
DOCKER_REGISTRY_URL=localhost:30071
sed -i "s/REGISTRY_PLACEHOLDER/${DOCKER_REGISTRY_URL}/g" ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl apply -f ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl -n kube-system rollout restart daemonset nvidia-device-plugin-daemonset
DOCKER_REGISTRY_URL=localhost:30071
sed -i "s/REGISTRY_PLACEHOLDER/${DOCKER_REGISTRY_URL}/g" ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl apply -f ./Infra_Installer/gpu_plugin/nvidia-device-plugin.yaml
kubectl -n kube-system rollout restart daemonset nvidia-device-plugin-daemonset
GPU-Markierungen
GPU-Workloads werden automatisch auf GPU-Knoten geplant, wenn ein Workload dies anfordert. Aber auch normale CPU-Workloads können auf diesen Knoten eingeplant werden, wodurch die Kapazität reserviert wird. Wenn sie möchten, dass auf diesen Knoten nur GPU-Workloads geplant werden, können Sie diesen Knoten Markierungen mithilfe folgender Befehle vom ersten Knoten hinzufügen.
nvidia.com/gpu=present:NoSchedule– Nicht-GPU-Workloads werden auf diesem Knoten nicht geplant, es sei denn, sie wurden explizit angegebennvidia.com/gpu=present:PreferNoSchedule– Dies macht sie zu einer bevorzugten Bedingung statt einer harten Bedingung wie die erste Option
Ersetzen Sie <node-name> durch den Namen des entsprechenden GPU-Knotens in Ihrem Cluster und <taint-name> durch eine der beiden oben genannten Optionen im folgenden Befehl:
kubectl taint node <node-name> <taint-name>
kubectl taint node <node-name> <taint-name>
Validieren der GPU-Knotenbereitstellung
Um sicherzustellen, dass Sie die GPU-Knoten erfolgreich hinzugefügt haben, führen Sie den folgenden Befehl im Terminal aus. Die Ausgabe sollte nvidia.com/gpu zusammen mit den CPU- und RAM-Ressourcen als Ausgabe anzeigen.
kubectl describe node <node-name>
kubectl describe node <node-name>