Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use default Kubernetes GPU scheduling

Última atualização: Jun 27, 2026

O Container Service for Kubernetes (ACK) oferece suporte ao agendamento e à operação de GPUs. O modo padrão de uso de GPU segue o padrão da comunidade upstream do Kubernetes. Este tópico demonstra como implantar uma carga de trabalho de exemplo do TensorFlow para validar o agendamento de GPU.

Pré-requisitos

Verifique se você possui:

  • Um cluster ACK com pelo menos um nó de GPU

  • kubectl configurado para se conectar ao cluster

  • Acesso ao console do ACK

Evite contornar as solicitações padrão de recursos de GPU

Em nós de GPU gerenciados pelo ACK, solicite recursos de GPU exclusivamente por meio do mecanismo padrão de recursos estendidos do Kubernetes (nvidia.com/gpu em resources.limits). As ações a seguir ignoram esse mecanismo e representam riscos de segurança:

  • Executar aplicações de GPU diretamente nos nós

  • Utilizar docker, podman ou nerdctl para criar containers ou solicitar recursos de GPU (por exemplo, docker run --gpus all ou docker run -e NVIDIA_VISIBLE_DEVICES=all)

  • Adicionar NVIDIA_VISIBLE_DEVICES=all ou NVIDIA_VISIBLE_DEVICES=<GPU ID> à seção env do arquivo YAML de um pod

  • Usar a variável de ambiente NVIDIA_VISIBLE_DEVICES para solicitar recursos de GPU para um pod

  • Defina NVIDIA_VISIBLE_DEVICES como all na imagem do container quando não estiver definido no YAML do pod

  • Configurar privileged: true no securityContext do pod e executar um programa de GPU

Por que isso é importante: Solicitações de GPU fora do padrão são invisíveis ao rastreamento de recursos do agendador. Essa incompatibilidade pode fazer com que o agendador aloque GPUs em excesso em um nó, resultando em múltiplos pods disputando a mesma placa de GPU (por exemplo, competindo por memória de GPU) e causando falhas na carga de trabalho. Esses métodos também podem acionar erros conhecidos relatados pela comunidade NVIDIA.

Verifique a disponibilidade de GPU

Antes de implantar uma carga de trabalho, confirme se o seu nó de GPU expõe a capacidade de GPU ao agendador do Kubernetes.

  1. Liste os nós no cluster:

    kubectl get nodes
  2. Descreva um nó de GPU para verificar sua capacidade:

    kubectl describe node <gpu-node-name>

    Na seção Capacity, nvidia.com/gpu deve exibir um valor diferente de zero:

    Capacity:
     nvidia.com/gpu: 1

    Se nvidia.com/gpu estiver ausente ou exibir 0, o plugin de dispositivo NVIDIA pode não estar em execução no nó. Verifique a implantação do DaemonSet do plugin, os drivers de GPU e a configuração do nó antes de prosseguir.

Implantar uma aplicação de GPU

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, clique em Create from YAML e cole este manifesto:

    apiVersion: v1
    kind: Pod
    metadata:
      name: tensorflow-mnist
      namespace: default
    spec:
      containers:
      - image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
        name: tensorflow-mnist
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            nvidia.com/gpu: 1  # Request one GPU card for this container.
        workingDir: /root
      restartPolicy: Always
    Recursos estendidos de GPU exigem apenas limits , e não requests . O Kubernetes não permite requests sem um limits correspondente para recursos estendidos. O agendador utiliza o valor de limits como a solicitação efetiva.
  4. No painel de navegação à esquerda, escolha Workloads > Pods. Localize e clique em no pod.

  5. Clique em na aba Logs. O download da imagem e a inicialização do pod podem levar alguns minutos. Após a execução, a saída do log confirma que o agendamento de GPU está funcionando corretamente.

    image.png

Próximos passos

  • Para direcionar tipos específicos de GPU em um cluster heterogêneo, utilize rótulos e seletores de nó. Rotule os nós de GPU por tipo de acelerador (por exemplo, kubectl label nodes <node-name> accelerator=<gpu-model>) e adicione um nodeSelector à especificação do seu pod.

  • Para opções avançadas de agendamento de GPU, como compartilhamento e isolamento de GPU, consulte a documentação de agendamento de GPU do ACK.