Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Gerencie cargas de trabalho de IA/ML com ack-kube-queue

Última atualização: Jun 27, 2026

Enfileire jobs até que os recursos do cluster fiquem livres para evitar contenção e desperdício de GPU/CPU ociosa.

Instale o ack-kube-queue, ative tipos adicionais de jobs (opcional) e envie-os para a fila.

Como funciona

O ack-kube-queue usa o mecanismo nativo suspend do Kubernetes. Ao enviar um job com suspend definido como true (via campo ou anotação), ele entra na fila. O ack-kube-queue monitora a disponibilidade de recursos e define suspend como false quando há recursos suficientes, iniciando o job.

Tipos de cluster compatíveis

O ack-kube-queue é compatível com:

  • Clusters gerenciados ACK com Kubernetes 1.18 ou posterior

  • Clusters ACK Edge com Kubernetes 1.18 ou posterior

  • Clusters ACK Lingjun com Kubernetes 1.18 ou posterior

Instale o ack-kube-queue

As etapas de instalação variam conforme o tipo de cluster.

Clusters gerenciados ACK e clusters ACK Edge

Escolha o procedimento adequado ao estado atual do seu cluster.

Se o conjunto de IA nativa da nuvem ainda não estiver instalado

  1. Ative o conjunto de IA nativa da nuvem.

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

  3. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, selecione Applications > Cloud-native AI Suite.

  4. Na parte inferior da página Cloud-native AI Suite, clique em Deploy. Na seção Scheduling, selecione Kube-Queue. Na seção Ecosystem Tools, selecione Kubeflow and Arena. Em seguida, clique em Deploy Cloud-native AI Suite.

Se o conjunto de IA nativa da nuvem já estiver instalado

  1. Ative o conjunto de IA nativa da nuvem.

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

  3. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, selecione Applications > Cloud-native AI Suite.

  4. Instale ack-arena e ack-kube-queue separadamente. Após a instalação, o campo Status em Components exibirá Deployed.

    • Localize ack-arena e clique em Deploy na coluna Actions. No painel Parameters, clique em OK.

    • Localize ack-kube-queue e clique em Deploy na coluna Actions. No painel, clique em OK.

Clusters ACK Lingjun

  1. Faça login no console ACK. No painel de navegação à esquerda, selecione Marketplace > Marketplace.

  2. Na página Marketplace, pesquise por ack-kube-queue e clique no resultado correspondente.

  3. Na página de detalhes da aplicação, clique em Deploy. Na etapa Basic Information, defina Cluster, Namespace e Release Name; depois, clique em Next.

  4. Na etapa Parameters, defina Chart Version como a versão mais recente e clique em OK.

Ative tipos adicionais de jobs

Por padrão, o ack-kube-queue habilita o enfileiramento apenas para jobs nativos do Kubernetes. Para enfileirar jobs TensorFlow, PyTorch, MPI, workflows Argo, jobs Ray ou aplicações Spark, ative cada tipo individualmente.

Nota

Para enfileirar jobs nativos do Kubernetes, o cluster deve executar o Kubernetes 1.22 ou posterior.

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

  2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, selecione Applications > Helm.

  3. Localize ack-kube-queue e clique em Update na coluna Actions.

  4. No modelo YAML, defina os parâmetros dos tipos de jobs a serem ativados:

    Parâmetro

    Efeito

    extension.argo.enable: true

    Ativa workflows Argo

    extension.mpi.enable: true

    Ativa jobs MPI

    extension.ray.enable: true

    Ativa jobs Ray

    extension.spark.enable: true

    Ativa aplicações Spark

    extension.tf.enable: true

    Ativa jobs TensorFlow

    extension.pytorch.enable: true

    Ativa jobs PyTorch

  5. Clique em OK.

Envie jobs

Envie cada tipo de job compatível para uma fila e verifique se ele foi enfileirado.

Restrições

Tipo de job

Restrição

TensorFlow, PyTorch, MPI

Use o operador fornecido pelo ack-arena

MPI

Envio permitido apenas via Arena

Workflows Argo

Apenas workflows completos podem ser enfileirados; etapas individuais não. Declare os requisitos de recursos com a anotação kube-queue/min-resources (consulte Workflows Argo).

Jobs nativos do Kubernetes

O cluster deve executar o Kubernetes 1.22 ou posterior

Jobs TensorFlow, PyTorch e MPI

Adicione a anotação scheduling.x-k8s.io/suspend: "true" ao manifesto do job.

Exemplo de job TensorFlow:

apiVersion: "kubeflow.org/v1"
kind: "TFJob"
metadata:
  name: "job1"
  annotations:
    scheduling.x-k8s.io/suspend: "true"
spec:
...

Verifique se o job está enfileirado:

kubectl describe tfjob job1

Um job enfileirado exibe a condição Suspended.

Jobs nativos do Kubernetes

Defina spec.suspend como true. Quando retirado da fila, o ack-kube-queue define esse campo como false e o job é iniciado.

apiVersion: batch/v1
kind: Job
metadata:
  generateName: pi-
spec:
  suspend: true
...

Verifique se o job está enfileirado:

kubectl get job <job-name>

Um job enfileirado exibe SUSPENDED. Quando o ack-kube-queue admite o job, o status SUSPENDED é removido e a execução começa.

Workflows Argo

Pré-requisito: Instale o Argo Workflows no Marketplace do console ACK.

Adicione um modelo personalizado chamado kube-queue-suspend do tipo suspend e defina spec.suspend como true. Declare os requisitos de recursos com a anotação kube-queue/min-resources:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: <workflow-name>-
  annotations:
    kube-queue/min-resources: |
      cpu: 5
      memory: 5G
spec:
  suspend: true
  entrypoint: <entrypoint-template>
  templates:
  # Required: add a suspend template named kube-queue-suspend
  - name: kube-queue-suspend
    suspend: {}
  - name: <entrypoint-template>
    # ... your workflow steps

Aplicações Spark

Pré-requisito: Instale o ack-spark-operator no Marketplace do console ACK.

Adicione a anotação scheduling.x-k8s.io/suspend: "true" ao manifesto SparkApplication:

apiVersion: sparkoperator.k8s.io/v1beta2
kind: SparkApplication
metadata:
  generateName: spark-pi-suspend-
  namespace: spark-operator
  annotations:
    scheduling.x-k8s.io/suspend: "true"
spec:
...

Jobs Ray

Pré-requisito: Instale o Kuberay-Operator na página Add-ons do console ACK. Consulte Gerenciar componentes.

Defina spec.suspend como true:

apiVersion: ray.io/v1
kind: RayJob
metadata:
  name: rayjob-sample
spec:
  # Suspend specifies whether the RayJob controller should create a RayCluster instance.
  # If a job is applied with the suspend field set to true, the RayCluster will not be created and we will wait for the transition to false.
  # If the RayCluster is already created, it will be deleted. In the case of transition to false, a new RayCluster will be created.
  suspend: true
...

Referências