- Démarrage
- Configuration requise pour le réseau
- Exigences et installation d'un nœud unique
- Exigences et installation d'un multi-nœuds
- Post-installation
- Accéder à AI Center
- Enregistrer un locataire AI Center
- Mise à jour des certificats Orchestrator et Identity Server
- Redimensionner le PVC
- Ajouter un nouveau nœud au cluster
- Installation hors ligne des paquets ML
- Configuration du cluster
- Configuration du nom complet de domaine après l'installation
- Sauvegarder et restaurer le cluster
- Utilisation de la pile de surveillance
- Configurer une authentification Kerberos
- Enregistrement d'un GPU
- Enregistrement d'un GPU
- Utilisation du fichier de configuration
- Planification des nœuds
- Migration et mise à niveau
- Guide de dépannage de base
Enregistrement d'un GPU
gpu_support
du cluster_config.json
. Au lieu de cela, suivez les instructions ci-dessous pour ajouter un nœud d'agent dédié avec prise en charge GPU au cluster.
Actuellement, Automation Suite ne prend en charge que les pilotes GPU Nvidia. Consultez la liste des systèmes d'exploitation compatibles avec le GPU.
Vous pouvez trouver des types d'instances spécifiques au cloud pour les nœuds ici :
Suivez les étapes de l'Ajout d'un nouveau nœud au cluster pour vous assurer que le nœud de l'agent est ajouté correctement.
Pour plus d'exemples de déploiement de NVIDIA CUDA sur un GPU, consultez cette page.
- Exécutez la commande suivante pour installer le pilote GPU sur le nœud de l'agent :
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 - Exécutez la commande suivante pour installer les boîtes à outils de conteneur :
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
Vérifiez si les pilotes sont correctement installés
sudo nvidia-smi
sur le nœud pour vérifier si les pilotes ont été installés correctement.
À ce stade, les pilotes GPU ont été installés et les nœuds GPU ont été ajoutés au cluster.
contianerd
du nœud de l'agent.
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
[[ "$(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
Exécutez les commandes ci-dessous à partir de l'un des nœuds du serveur principal.
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
Les charges de travail GPU sont automatiquement planifiées sur les nœuds GPU lorsqu'une charge de travail envoie une requête. Toutefois, les charges de travail CPU normales peuvent également être planifiées sur ces nœuds, en réservant ainsi la capacité. Si vous souhaitez que seules les charges de travail GPU soient planifiées sur ces nœuds, vous pouvez ajouter des rejets à ces nœuds en utilisant les commandes suivantes à partir du premier nœud.
nvidia.com/gpu=present:NoSchedule
- les charges de travail non GPU ne sont pas planifiées sur ce nœud, sauf indication contrairenvidia.com/gpu=present:PreferNoSchedule
- cela en fait une condition à privilégier à une condition difficile comme la première option
<node-name>
par le nom de nœud GPU correspondant dans votre cluster et <taint-name>
par l'une des 2 options ci-dessus dans la commande suivante
kubectl taint node <node-name> <taint-name>
kubectl taint node <node-name> <taint-name>
nvidia.com/gpu
en tant que sortie avec les ressources CPU et RAM.
kubectl describe node <node-name>
kubectl describe node <node-name>