Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Manage the GPU sharing component

Dernière mise à jour :Sep 29, 2026

Container Service for Kubernetes (ACK) offre des fonctionnalités de partage et d'ordonnancement de GPU pour les scénarios d'inférence de modèles qui partagent un seul GPU. Il assure également l'isolation de la mémoire GPU en mode noyau du pilote NVIDIA. Si vous avez installé le composant de partage de GPU dans votre cluster, mettez-le à niveau vers la dernière version si le pilote GPU ou le système d'exploitation d'un nœud est incompatible avec la version cGPU installée. Cette rubrique explique comment gérer le composant de partage de GPU sur les nœuds GPU afin d'activer l'ordonnancement et l'isolation des GPU.

Prérequis

Limites

  • La fonctionnalité d'isolation de la mémoire cGPU est prise en charge uniquement sur les nœuds Alibaba Cloud Elastic Compute Service (ECS). N'ajoutez pas le libellé ack.node.gpu.schedule=cgpu ou ack.node.gpu.schedule=core_mem aux nœuds qui ne sont pas des nœuds Alibaba Cloud ECS.

  • Ne définissez pas la politique CPU sur static pour les nœuds qui utilisent le partage de GPU.

  • Si vous devez spécifier un chemin personnalisé pour le fichier KubeConfig, exécutez la commande export KUBECONFIG=<kubeconfig>. La commande kubectl inspect cgpu ne prend pas en charge le paramètre --kubeconfig.

  • Étant donné que l'isolation cGPU ne prend pas en charge Unified Virtual Memory (UVM), vous ne pouvez pas appeler cudaMallocManaged() pour allouer de la mémoire GPU. Appelez plutôt cudaMalloc(). Pour plus d'informations, consultez la documentation NVIDIA.

  • Les pods DaemonSet de partage de GPU n'ont pas la priorité la plus élevée sur un nœud ; d'autres pods ayant une priorité supérieure peuvent donc préempter leurs ressources et provoquer leur éviction. Pour éviter cela, modifiez le DaemonSet que vous utilisez, par exemple gpushare-device-plugin-ds pour la mémoire GPU partagée, et ajoutez priorityClassName: system-node-critical afin de garantir une priorité élevée.

  • Pour des raisons de performances, une seule carte GPU prend en charge un maximum de 20 pods lors de l'utilisation de cGPU. Si cette limite est dépassée, les pods suivants ordonnancés sur cette carte ne pourront pas s'exécuter et renverront le message d'erreur Error occurs when creating cGPU instance: unknown.

    Pour empêcher l'ordonnanceur de continuer à planifier des pods cGPU sur des nœuds où une seule carte a déjà atteint la limite de 20 pods, exécutez la commande suivante pour ajouter un libellé au nœud :

    kubectl label nodes <NODE> ack.node.gpu.max-pod=20

    La valeur 20 est fixe et ne peut pas être modifiée.

  • Vous pouvez installer le composant de partage de GPU dans n'importe quelle région. Toutefois, la fonctionnalité d'isolation de la mémoire GPU est disponible uniquement dans les régions suivantes. Assurez-vous que votre cluster se trouve dans l'une de ces régions.

    Régions

    Région

    ID de région

    Chine (Pékin)

    cn-beijing

    Chine (Shanghai)

    cn-shanghai

    Chine (Hangzhou)

    cn-hangzhou

    Chine (Zhangjiakou)

    cn-zhangjiakou

    Chine (Wulanchabu)

    cn-wulanchabu

    Chine (Shenzhen)

    cn-shenzhen

    Chine (Chengdu)

    cn-chengdu

    Chine (Heyuan)

    cn-heyuan

    Chine (Hong Kong)

    cn-hongkong

    Japon (Tokyo)

    ap-northeast-1

    Indonésie (Jakarta)

    ap-southeast-5

    Singapour

    ap-southeast-1

    États-Unis (Virginie)

    us-east-1

    États-Unis (Silicon Valley)

    us-west-1

    Allemagne (Francfort)

    eu-central-1

  • Compatibilité des versions.

    Élément

    Versions prises en charge

    Version Kubernetes

    • Les versions d'ack-ai-installer antérieures à 1.12.0 prennent en charge les clusters exécutant Kubernetes 1.18.8 ou ultérieur.

    • ack-ai-installer 1.12.0 ou ultérieur prend en charge uniquement les clusters exécutant Kubernetes 1.20 ou ultérieur.

    Version du pilote NVIDIA

    418.87.01 ou ultérieure

    Version du runtime de conteneur

    • Docker : 19.03.5 ou ultérieure

    • containerd : 1.4.3 ou ultérieure

    Système d'exploitation

    Alibaba Cloud Linux 3.x (l'édition optimisée pour les conteneurs nécessite ack-ai-installer v1.12.6 ou ultérieur), Alibaba Cloud Linux 2.x, CentOS 7.6, CentOS 7.7, CentOS 7.9, Ubuntu 22.04

    GPU pris en charge

    Séries P, T, V, A, H

Instructions

Installer le composant de partage GPU

Étape 1 : Installer le composant de partage GPU

Cloud-native AI Suite not deployed

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Cloud-native AI Suite.

  3. Sur la page Cloud-native AI Suite, cliquez sur Deploy.

  4. Sur la page de déploiement de Cloud-native AI Suite, sélectionnez Scheduling policies extension (Batch scheduling, GPU sharing, and GPU topology-aware scheduling).

  5. (Facultatif) Pour personnaliser la politique cGPU, cliquez sur Advanced à droite de Scheduling Policy Extension (Batch Task Scheduling, GPU Sharing, Topology-aware GPU Scheduling). Dans la boîte de dialogue Parameters, modifiez le champ policy pour cGPU et cliquez sur OK.

    Si vous n'avez pas d'exigences particulières concernant le partage de puissance de calcul cGPU, le paramètre recommandé est la valeur par défaut policy: 5 (ordonnancement natif). Pour plus d'informations sur les politiques cGPU, consultez la rubrique Installer et utiliser le service cGPU.

  6. En bas de la page Cloud-native AI Suite, cliquez sur Deploy Cloud-native AI Suite.

    Après l'installation, le composant ack-ai-installer apparaît dans la liste des composants sur la page Cloud-native AI Suite.

Cloud-native AI Suite deployed

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Cloud-native AI Suite.

  3. Recherchez le composant ack-ai-installer et cliquez sur Deploy dans la colonne Actions.

  4. (Facultatif) Dans la boîte de dialogue Parameters qui s'affiche, modifiez le champ policy pour cGPU.

    Si vous n'avez pas d'exigences particulières concernant le partage de puissance de calcul cGPU, le paramètre recommandé est la valeur par défaut policy: 5 (ordonnancement natif). Pour plus d'informations sur les politiques cGPU, consultez la rubrique Installer et utiliser le service cGPU.

  5. Une fois les paramètres modifiés, cliquez sur OK.

    Après l'installation du composant, l'état Status de ack-ai-installer passe à Deployed.

Étape 2 : Activer le partage et l'isolation GPU

  1. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Nodes > Node Pools.

  2. Sur la page Node Pools, cliquez sur Create Node Pool. Configurez les paramètres comme décrit dans la rubrique Créer et gérer un pool de nœuds.

  3. Sur la page Create Node Pool, configurez les paramètres du pool de nœuds, puis cliquez sur Confirm. Le tableau suivant décrit les principaux paramètres.

    Paramètre

    Description

    Nombre de nœuds attendu

    Saisissez le nombre initial de nœuds pour le pool de nœuds. Utilisez 0 si aucun nœud n'est nécessaire initialement.

    Libellés de nœud

    Définissez la valeur du libellé en fonction de vos besoins métier. Pour plus d'informations sur les libellés de nœud, consultez la rubrique Activer l'ordonnancement.

    Cet exemple utilise la valeur de libellé cgpu. Cette valeur active le partage GPU sur le nœud, où chaque pod ne doit demander que des ressources de mémoire GPU. Plusieurs pods sur une seule carte GPU partagent la puissance de calcul et disposent d'une mémoire isolée.

    Cliquez sur 节点标签 à côté de Node Labels. Définissez la Key sur ack.node.gpu.schedule et la Value sur cgpu.

    Important
    • Pour obtenir des notes sur l'utilisation de la fonctionnalité d'isolation cGPU, consultez la FAQ cGPU.

    • Après avoir ajouté le libellé de partage GPU, n'utilisez pas la commande kubectl label nodes pour modifier le libellé d'ordonnancement GPU ni la fonctionnalité de gestion des libellés sur la page Nodes pour modifier le libellé du nœud. Cela pourrait entraîner des problèmes potentiels. Pour plus d'informations, consultez la rubrique Activer l'ordonnancement. La méthode recommandée est décrite dans la rubrique Activer l'ordonnancement.

Étape 3 : Ajouter des nœuds GPU

Remarque

Si vous avez déjà créé des nœuds GPU lors de l'ajout du pool de nœuds, vous pouvez ignorer cette étape.

Après avoir créé le pool de nœuds, ajoutez-y des nœuds GPU. Veillez à spécifier un serveur cloud GPU comme type d'instance. Pour plus d'informations, consultez les rubriques Ajouter des nœuds existants à un pool de nœuds ou Créer et gérer un pool de nœuds.

Étape 4 : Installer l'outil de requête GPU

  1. Téléchargez l'exécutable kubectl-inspect-cgpu dans un répertoire de votre PATH, tel que /usr/local/bin/.

    • Si vous utilisez Linux, exécutez la commande suivante pour télécharger kubectl-inspect-cgpu.

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-linux -O /usr/local/bin/kubectl-inspect-cgpu
    • Si vous utilisez macOS, exécutez la commande suivante pour télécharger kubectl-inspect-cgpu.

      wget http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/gpushare/kubectl-inspect-cgpu-darwin -O /usr/local/bin/kubectl-inspect-cgpu
  2. Rendez le fichier exécutable :

    chmod +x /usr/local/bin/kubectl-inspect-cgpu
  3. Vérifiez l'utilisation du GPU dans le cluster :

    kubectl inspect cgpu

    Sortie attendue :

    NAME                       IPADDRESS      GPU0(Allocated/Total)  GPU Memory(GiB)
    cn-shanghai.192.168.6.104  192.168.6.104  0/15                   0/15
    ----------------------------------------------------------------------
    Allocated/Total GPU Memory In Cluster:
    0/15 (0%)

Mettre à niveau le composant de partage GPU

Étape 1 : Déterminer la méthode de mise à niveau

La méthode de mise à niveau dépend du mode d'installation du composant ack-ai-installer. Il existe deux méthodes d'installation :

  • Installation via Cloud-native AI Suite (recommandée) : le composant a été installé depuis la page Cloud-native AI Suite.

  • Installation depuis App Catalog (n'est plus disponible) : le composant ack-ai-installer a été installé depuis la page App Catalog dans Marketplace. Cette méthode est désormais fermée, mais les composants existants installés de cette manière peuvent toujours être mis à niveau par ce biais.

    Important

    Si vous désinstallez un composant installé avec cette méthode, vous devez activer Cloud-native AI Suite et terminer l'installation pour le réinstaller.

Déterminer la méthode d'installation

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Cloud-native AI Suite.

  3. Sur la page Cloud-native AI Suite, vérifiez si le composant ack-ai-installer est déployé.

    Si le composant est déployé, il a été installé via Cloud-native AI Suite. Sinon, il a été installé depuis App Catalog.

Étape 2 : Mettre à niveau le composant

Cloud-native AI suite

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Cloud-native AI Suite.

  3. Dans la section Components, localisez le composant ack-ai-installer et cliquez sur Upgrade dans la colonne Actions.

App catalog

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Helm.

  3. Sur la page Helm, localisez la version ack-ai-installer. Dans la colonne Actions, cliquez sur Update. Suivez les instructions pour sélectionner la dernière version du Chart et mettre à jour le composant.

    Important

    Si vous devez personnaliser la configuration du Chart, confirmez la mise à jour du composant après avoir effectué vos modifications.

    Après la mise à jour, vérifiez la page Helm pour confirmer que la version du Chart de la version ack-ai-installer est bien la dernière.

Étape 3 : Mettre à niveau les nœuds existants

La mise à niveau du composant ack-ai-installer ne met pas automatiquement à niveau la version cGPU sur les nœuds existants. Utilisez les informations suivantes pour déterminer si la fonctionnalité d'isolation cGPU est activée sur vos nœuds.

  • Si votre cluster contient des nœuds GPU avec la fonctionnalité d'isolation cGPU activée, vous devez également mettre à niveau la version cGPU sur ces nœuds. Pour plus d'informations, consultez Mettre à niveau la version cGPU d'un nœud.

  • Si votre cluster ne comporte aucun nœud avec la fonctionnalité d'isolation cGPU activée, ignorez cette étape.

    Remarque
    • Si un nœud possède le libellé ack.node.gpu.schedule=cgpu ou ack.node.gpu.schedule=core_mem, la fonctionnalité d'isolation cGPU est activée.

    • La mise à niveau de la version cGPU sur les nœuds existants nécessite l'arrêt de tous les pods métier sur ces nœuds. Effectuez cette opération pendant les heures creuses afin de minimiser les perturbations métier.