Todos os produtos
Search
Central de documentação

Container Compute Service:Use a custom scheduler

Última atualização: Jun 29, 2026

Os clusters ACS incluem um default-scheduler integrado que aloca recursos para todos os pods. Para workloads GPU-HPN que exigem políticas de agendamento complexas — como gang scheduling ou posicionamento com reconhecimento de topologia — implante um agendador personalizado (por exemplo, Koordinator ou Volcano) e configure o ACS para usá-lo.

O suporte a agendadores personalizados aplica-se exclusivamente a pods GPU-HPN. Todos os outros tipos de computação usam nós virtuais padrão e não oferecem suporte a agendadores personalizados.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um pod com o tipo de computação definido como High-Performance Network GPU (gpu-hpn)

  • O add-on acs-virtual-node instalado na versão v2.12.0-acs.8 ou posterior

  • O componente kube-scheduler instalado em uma versão compatível com agendadores personalizados:

    Versão do cluster ACS

    Versão mínima do kube-scheduler

    1,32 e posteriores

    Todas as versões suportadas

    1,31

    v1.31.0-aliyun-1.1.2 ou posterior

    1,30

    v1.30.3-aliyun-1.1.2 ou posterior

    1,28

    v1.28.9-aliyun-1.1.2 ou posterior

Ao usar um agendador personalizado para pods GPU-HPN, configure o campo spec.schedulerName em cada pod. Para mais detalhes, consulte Specify schedulers for pods .

Observações de uso

A ativação de agendadores personalizados altera a forma como o ACS gerencia pods e nós GPU-HPN. Analise as diferenças de comportamento antes de prosseguir.

Aspecto

Agendador padrão (desativado)

Agendador personalizado (ativado)

Nome do agendador do pod

Não personalizável. Após o envio de um pod, o campo spec.schedulerName é sobrescrito para default-scheduler.

Personalizável. O campo spec.schedulerName é preservado após o envio e pode receber qualquer valor.

Processo de agendamento do pod

O agendador padrão do ACS aloca recursos para todos os pods.

O agendador padrão do ACS processa apenas os pods cujo campo spec.schedulerName seja default-scheduler. Seu agendador personalizado assume todos os demais pods.

Restrições de rótulos e taints em nós GPU-HPN

A adição, modificação e exclusão de rótulos, anotações e taints de nó estão sujeitas às restrições do ACS. Consulte Manage node labels and taints.

As restrições de rótulos, anotações e taints de nó deixam de ser aplicadas.

Restrições de agendamento por afinidade de pod

A configuração do campo de afinidade está sujeita às restrições do ACS. Consulte Node affinity scheduling.

As restrições do campo de afinidade deixam de ser aplicadas.

Importante

Essas alterações afetam somente pods e nós GPU-HPN. Outros tipos de computação não oferecem suporte a agendadores personalizados.

Implantar e configurar um agendador personalizado

Etapa 1: Implantar um agendador personalizado

Implante seu agendador personalizado no cluster ACS. Para obter um exemplo completo — incluindo a configuração necessária de ServiceAccount e ClusterRoleBinding — consulte a documentação do Kubernetes.

Etapa 2: Ativar agendadores personalizados no ACS

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

  2. Na página Clusters, clique no ID do cluster desejado. No painel de navegação à esquerda, escolha Operations > Add-ons.

  3. Na página Add-ons, localize o cartão Kube Scheduler e clique em Configuration.

  4. Na caixa de diálogo, selecione Enable custom labels and schedulers for GPU-HPN nodes e clique em OK.

Etapa 3: Configurar um agendador personalizado para um pod

  1. Crie um arquivo chamado dep-with-koordinator.yaml com o conteúdo abaixo. Este Deployment define alibabacloud.com/compute-class: gpu-hpn no modelo de pod e atribui koord-scheduler como agendador. Substitua koord-scheduler pelo nome configurado na Etapa 1.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dep-with-koordinator
      labels:
        app: dep-with-koordinator
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: dep-with-koordinator
      template:
        metadata:
          labels:
            app: dep-with-koordinator
            # Set the compute class to gpu-hpn. Other compute types do not support custom schedulers.
            alibabacloud.com/compute-class: gpu-hpn
        spec:
          containers:
          - name: demo
            image: registry.cn-hangzhou-finance.aliyuncs.com/acs/stress:v1.0.4
            command:
            - "sleep"
            - "infinity"
          restartPolicy: Always
          # Set the scheduler name to match the one deployed in Step 1.
          schedulerName: koord-scheduler
  2. Aplique o Deployment no cluster.

    kubectl apply -f dep-with-koordinator.yaml
  3. Verifique se o pod está usando o agendador personalizado.

    kubectl get pod -lapp=dep-with-koordinator -o custom-columns=NAME:.metadata.name,schedulerName:.spec.schedulerName

    Saída esperada:

    NAME                               schedulerName
    dep-with-koordinator-xxxxx-xxxxx   koord-scheduler

Perguntas frequentes

Por que recebo o erro "Insufficient attachable-volumes-xxx" quando um pod usa um PVC com um agendador personalizado?

Alguns agendadores personalizados exigem que o objeto Node da Container Storage Interface (CSI) exista no nó e tenha relatado informações de capacidade para o driver CSI correspondente. Caso essa condição não seja atendida, o agendador relata um erro de recurso insuficiente — mesmo que o agendador padrão do Kubernetes gerencie essa situação automaticamente.

Configure o agendador personalizado para ignorar drivers CSI específicos. Para o agendador Volcano, adicione a flag --ignored-provisioners na inicialização:

# Separate multiple drivers with commas.
--ignored-provisioners=povplugin.csi.alibabacloud.com

Ajuste o nome do driver para corresponder ao driver CSI presente no seu cluster.