Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Manage the GPU sharing component

Última actualización: Sep 25, 2026

Container Service for Kubernetes (ACK) ofrece funciones para compartir y programar GPU en escenarios de inference que comparten una sola GPU. Además, aplica el aislamiento de memoria de GPU en el modo kernel del controlador de NVIDIA. Si ya instaló el componente de uso compartido de GPU en su clúster, actualícelo a la versión más reciente cuando el controlador de GPU o el sistema operativo de un nodo no sea compatible con la versión de cGPU instalada. Este tema describe cómo gestionar el componente de uso compartido de GPU en los nodos GPU para habilitar la programación y el aislamiento de GPU.

Requisitos previos

Limitaciones

  • La función de aislamiento de memoria de cGPU solo es compatible con nodos de Elastic Compute Service (ECS) de Alibaba Cloud. No agregue la etiqueta ack.node.gpu.schedule=cgpu ni ack.node.gpu.schedule=core_mem a los nodos que no sean de ECS de Alibaba Cloud.

  • No establezca la directiva de CPU en static para los nodos que usan el uso compartido de GPU.

  • Si necesita especificar una ruta personalizada para el archivo KubeConfig, ejecute el comando export KUBECONFIG=<kubeconfig>. El comando kubectl inspect cgpu no admite el parámetro --kubeconfig.

  • El aislamiento de cGPU no admite Unified Virtual Memory (UVM). Por lo tanto, no puede llamar a cudaMallocManaged() para asignar memoria de GPU; en su lugar, llame a cudaMalloc(). Para obtener más información, consulte la documentación de NVIDIA.

  • Los pods del DaemonSet de uso compartido de GPU no tienen la prioridad más alta en un nodo. Por ello, otros pods con mayor prioridad pueden apropiarse de sus recursos y provocar su desalojo. Para evitarlo, modifique el DaemonSet que utiliza, por ejemplo gpushare-device-plugin-ds para la memoria de GPU compartida, y agregue priorityClassName: system-node-critical para garantizar una prioridad alta.

  • Por motivos de rendimiento, una sola tarjeta GPU admite un máximo de 20 pods al usar cGPU. Si se supera este límite, los pods posteriores programados en esa tarjeta no se ejecutarán y devolverán el mensaje de error Error occurs when creating cGPU instance: unknown.

    Para evitar que el programador siga asignando pods de cGPU a nodos donde una tarjeta ya alcanzó el límite de 20 pods, ejecute el siguiente comando para agregar una etiqueta al nodo:

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

    El valor 20 es fijo y no se puede cambiar por otro.

  • Puede instalar el componente de uso compartido de GPU en cualquier región. Sin embargo, la función de aislamiento de memoria de GPU solo está disponible en las siguientes regiones. Asegúrese de que su clúster se encuentre en una de ellas.

    Regiones

    Región

    ID de región

    China (Beijing)

    cn-beijing

    China (Shanghai)

    cn-shanghai

    China (Hangzhou)

    cn-hangzhou

    China (Zhangjiakou)

    cn-zhangjiakou

    China (Wulanchabu)

    cn-wulanchabu

    China (Shenzhen)

    cn-shenzhen

    China (Chengdu)

    cn-chengdu

    China (Heyuan)

    cn-heyuan

    China (Hong Kong)

    cn-hongkong

    Japan (Tokyo)

    ap-northeast-1

    Indonesia (Jakarta)

    ap-southeast-5

    Singapore

    ap-southeast-1

    US (Virginia)

    us-east-1

    US (Silicon Valley)

    us-west-1

    Germany (Frankfurt)

    eu-central-1

  • Compatibilidad de versiones.

    Elemento

    Versiones compatibles

    Versión de Kubernetes

    • Las versiones de ack-ai-installer anteriores a la 1.12.0 admiten clústeres que ejecutan Kubernetes 1.18.8 o posterior.

    • ack-ai-installer 1.12.0 o posterior solo admite clústeres que ejecutan Kubernetes 1.20 o posterior.

    Versión del controlador de NVIDIA

    418.87.01 o posterior

    Versión del entorno de ejecución de contenedores

    • Docker: 19.03.5 o posterior

    • containerd: 1.4.3 o posterior

    Sistema operativo

    Alibaba Cloud Linux 3.x (la edición optimizada para contenedores requiere ack-ai-installer v1.12.6 o posterior), Alibaba Cloud Linux 2.x, CentOS 7.6, CentOS 7.7, CentOS 7.9, Ubuntu 22.04

    GPU compatibles

    Serie P, serie T, serie V, serie A, serie H

Instalación del componente de uso compartido de GPU

Paso 1: Instalar el componente de uso compartido de GPU

Cloud-native AI Suite no desplegado

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Applications > Cloud-native AI Suite.

  3. En la página Cloud-native AI Suite, haga clic en Deploy.

  4. En la página Deploy Cloud-native AI Suite, seleccione Scheduling policies extension (Batch scheduling, GPU sharing, and GPU topology-aware scheduling).

  5. (Opcional) Para personalizar la directiva de cGPU, haga clic en Advanced a la derecha de Scheduling Policy Extension (Batch Task Scheduling, GPU Sharing, Topology-aware GPU Scheduling). En el cuadro de diálogo Parameters, modifique el campo policy de cGPU y haga clic en OK.

    Si no tiene requisitos especiales para compartir la capacidad de cómputo de cGPU, se recomienda mantener la configuración predeterminada policy: 5 (programación nativa). Para obtener más información sobre las directivas de cGPU, consulte Install and use the cGPU service.

  6. En la parte inferior de la página Cloud-native AI Suite, haga clic en Deploy Cloud-native AI Suite.

    Una vez finalizada la instalación, el componente ack-ai-installer aparecerá en la lista de componentes de la página Cloud-native AI Suite.

Cloud-native AI Suite desplegado

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Applications > Cloud-native AI Suite.

  3. Busque el componente ack-ai-installer y haga clic en Deploy en la columna Actions.

  4. (Opcional) En el cuadro de diálogo Parameters que aparece, modifique el campo policy de cGPU.

    Si no tiene requisitos especiales para compartir la capacidad de cómputo de cGPU, se recomienda mantener la configuración predeterminada policy: 5 (programación nativa). Para obtener más información sobre las directivas de cGPU, consulte Install and use the cGPU service.

  5. Cuando termine de modificar los parámetros, haga clic en OK.

    Después de instalar el componente, el Status de ack-ai-installer cambia a Deployed.

Paso 2: Habilitar el uso compartido y el aislamiento de GPU

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Nodes > Node Pools.

  2. En la página Node Pools, haga clic en Create Node Pool. Configure los parámetros tal como se describe en Create and manage a node pool.

  3. En la página Create Node Pool, configure los parámetros del node pool y luego haga clic en Confirm. A continuación se describen los parámetros clave.

    Parámetro

    Descripción

    Expected number of nodes

    Introduzca el número inicial de nodos para el node pool. Use 0 si no necesita nodos al principio.

    Node labels

    Establezca el valor de la etiqueta según sus necesidades de negocio. Para obtener más información sobre las etiquetas de nodo, consulte Enable scheduling.

    Este ejemplo usa el valor de etiqueta cgpu. Dicho valor habilita el uso compartido de GPU en el nodo, donde cada pod solo necesita solicitar recursos de memoria de GPU. Varios pods en una misma tarjeta GPU comparten la capacidad de cómputo y tienen la memoria aislada.

    Haga clic en 节点标签 junto a Node Labels. Establezca Key en ack.node.gpu.schedule y Value en cgpu.

    Importante
    • Para ver las notas sobre el uso de la función de aislamiento de cGPU, consulte cGPU FAQ.

    • Después de agregar la etiqueta de uso compartido de GPU, no use el comando kubectl label nodes para cambiar la etiqueta de programación de GPU ni utilice la función de gestión de etiquetas en la página Nodes para modificar la etiqueta del nodo, ya que esto puede causar problemas potenciales. Para obtener más información, consulte Enable scheduling. El método recomendado se describe en Enable scheduling.

Paso 3: Agregar nodos GPU

Nota

Si ya creó nodos GPU cuando agregó el node pool, omita este paso.

Después de crear el node pool, agréguele nodos GPU. Al hacerlo, asegúrese de especificar un servidor en la nube GPU como tipo de instancia. Para obtener más información, consulte Add existing nodes to a node pool o Create and manage a node pool.

Paso 4: Instalar la herramienta de consulta de GPU

  1. Descargue el ejecutable kubectl-inspect-cgpu en un directorio de su PATH, como /usr/local/bin/.

    • Si usa Linux, ejecute el siguiente comando para descargar 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 usa macOS, ejecute el siguiente comando para descargar 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. Haga que el archivo sea ejecutable:

    chmod +x /usr/local/bin/kubectl-inspect-cgpu
  3. Compruebe el uso de GPU en el clúster:

    kubectl inspect cgpu

    Salida esperada:

    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%)

Actualización del componente de uso compartido de GPU

Paso 1: Determinar el método de actualización

El método de actualización depende de cómo se instaló el componente ack-ai-installer. Existen dos métodos de instalación:

  • Instalado mediante Cloud-native AI Suite (recomendado): el componente se instaló desde la página Cloud-native AI Suite.

  • Instalado desde App Catalog (ya no disponible): el componente ack-ai-installer se instaló desde la página App Catalog en Marketplace. Este método ya está cerrado, pero los componentes existentes instalados de esta forma aún se pueden actualizar por esta vía.

    Importante

    Si desinstala un componente que se instaló con este método, debe activar Cloud-native AI Suite y completar la instalación para volver a instalarlo.

Determinar el método de instalación

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Applications > Cloud-native AI Suite.

  3. En la página Cloud-native AI Suite, compruebe si el componente ack-ai-installer está desplegado.

    Si el componente está desplegado, se instaló mediante Cloud-native AI Suite. De lo contrario, se instaló desde App Catalog.

Paso 2: Actualizar el componente

Cloud-native AI suite

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Applications > Cloud-native AI Suite.

  3. En la sección Components, busque el componente ack-ai-installer y haga clic en Upgrade en la columna Actions.

App catalog

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Applications > Helm.

  3. En la página Helm, busque la versión de ack-ai-installer. En la columna Actions, haga clic en Update. Siga las indicaciones para seleccionar la versión más reciente del Chart y actualizar el componente.

    Importante

    Si necesita personalizar la configuración del Chart, confirme la actualización del componente después de aplicar los cambios.

    Tras la actualización, revise la página Helm para confirmar que la versión del Chart de ack-ai-installer es la más reciente.

Paso 3: Actualizar los nodos existentes

Actualizar el componente ack-ai-installer no actualiza automáticamente la versión de cGPU en los nodos existentes. Utilice la siguiente información para determinar si la función de aislamiento de cGPU está habilitada en sus nodos.

  • Si su clúster contiene nodos GPU con la función de aislamiento de cGPU habilitada, también debe actualizar la versión de cGPU en esos nodos. Para obtener más información, consulte Upgrade the cGPU version of a node.

  • Si su clúster no tiene ningún nodo con la función de aislamiento de cGPU habilitada, omita este paso.

    Nota
    • Si un nodo tiene la etiqueta ack.node.gpu.schedule=cgpu o ack.node.gpu.schedule=core_mem, la función de aislamiento de cGPU está habilitada.

    • Actualizar la versión de cGPU en los nodos existentes requiere detener todos los pods de negocio en dichos nodos. Ejecute esta operación fuera del horario pico para minimizar la interrupción del servicio.