- 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
Bereitstellen einer GPU
gpu_support
aus cluster_config.json
nicht. Folgen Sie stattdessen den Anweisungen unten, um dem Cluster einen dedizierten Agent-Knoten mit GPU-Unterstützung hinzuzufügen.
Derzeit unterstützt die Automation Suite nur Nvidia GPU-Treiber. Siehe Liste der GPU-unterstützten Betriebssysteme.
Cloud-spezifische Instanztypen für die Knoten finden Sie hier:
Führen Sie die Schritte unter Hinzufügen eines neuen Knotens zum Cluster aus, um sicherzustellen, dass der Agent-Knoten korrekt hinzugefügt wird.
Weitere Beispiele zur Bereitstellung von NVIDIA CUDA auf einer GPU finden Sie auf dieser Seite.
- 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 cuda
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 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_64
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_64
Überprüfen Sie, ob die Treiber ordnungsgemäß installiert sind
sudo nvidia-smi
auf dem Knoten aus, um zu überprüfen, ob die Treiber ordnungsgemäß installiert wurden.
Zu diesem Zeitpunkt wurden die GPU-Treiber installiert und die GPU-Knoten dem Cluster hinzugefügt.
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
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
Führen Sie die folgenden Befehle von einem der primären Serverknoten aus.
UiPathAutomationSuite
.
cd /opt/UiPathAutomationSuite
cd /opt/UiPathAutomationSuite
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
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-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
<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>
nvidia.com/gpu
zusammen mit den CPU- und RAM-Ressourcen als Ausgabe anzeigen.
kubectl describe node <node-name>
kubectl describe node <node-name>