ack-kube-queue é o componente de gerenciamento de filas de jobs da suíte de IA nativa em nuvem. Ele se integra ao scheduler e ao sistema de cotas do Kubernetes para enfileirar cargas de trabalho de IA/machine learning (ML) e em lote, agendar jobs por prioridade e aplicar cotas elásticas — maximizando a utilização de recursos no cluster.
Visão geral
Jobs de IA/ML e em lote no Kubernetes geram grandes quantidades de pods, o que aumenta a carga do scheduler. Quando várias equipes enviam jobs simultaneamente, elas competem por recursos e interferem umas nas outras.
O ack-kube-queue resolve isso dando aos administradores de sistema controle granular sobre as filas de jobs. Combinado ao sistema de cotas, ele automatiza o gerenciamento de cargas de trabalho e cotas de recursos, garantindo que a capacidade do cluster seja totalmente aproveitada em vez de fragmentada entre jobs concorrentes.
Principais recursos:
Gerenciamento de filas de jobs — Enfileira jobs de IA/ML e em lote, controla a ordem de envio e recupera informações de sequência de jobs das filas.
Agendamento por prioridade — Agenda jobs com base em prioridades configuráveis, incluindo agendamento de prioridade estrita que impõe ordenação entre filas.
Filas de bloqueio — Retém jobs na fila até que os recursos estejam disponíveis, evitando a fragmentação de recursos.
Cotas elásticas — Gerencia cotas de recursos dinamicamente com o ElasticQuotaTree, incluindo limites de jobs removidos da fila simultaneamente via
kube-queue/max-jobs.Fair queuing de várias filas — Distribui jobs entre várias filas com fair queuing para evitar congestionamento.
Reenfileiramento — Recupera e reenvia automaticamente jobs com pendência prolongada causada por agendamento com topologia, restrições de afinidade de nó ou fragmentos de recursos, liberando cotas ocupadas e melhorando a utilização geral.
Amplo suporte a tipos de jobs — Compatível com jobs MPI (enviados via Arena) e Argo Workflows.
Suporte a nós ARM — Os componentes kube-queue-controller, tf-operator-extension e pytorch-operator-extension são executados em nós baseados em ARM.
Ambientes compatíveis
O ack-kube-queue requer um dos seguintes tipos de cluster com Kubernetes 1.18 ou posterior:
Clusters ACK Pro
Clusters ACK Serverless Pro
Clusters ACK Edge Pro
Instale o ack-kube-queue ao implantar a suíte de IA nativa em nuvem ou adicione-o após a implantação. Para etapas de instalação e configuração de recursos, consulte Usar o ack-kube-queue para gerenciar filas de jobs.
Notas de versão
Janeiro de 2024
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.3.4 | Corrigido o bloqueio head-of-line que ocorre ocasionalmente no modo de bloqueio quando a primeira tarefa na fila é excluída. | Correção de bug | Nenhum |
Dezembro de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.3.3 | A configuração de filas de bloqueio globalmente por meio de variáveis de ambiente agora atualiza o modo de fila de bloqueio para todas as filas. | Melhoria | Nenhum |
Setembro de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.3.1 | Corrigidos erros de fila que ocorrem ocasionalmente durante a exclusão de QueueUnit. | Correção de bug | Nenhum |
| v0.3.0 | As informações de sequência de jobs agora podem ser recuperadas das filas. | Recurso | Nenhum |
Agosto de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.2.1 | Corrigido um problema em que o NodeSelector no modelo impede o agendamento em nós de trabalho. | Correção de bug | Nenhum |
| v0.2.0 | Adicionado suporte para envio de jobs Message Passing Interface (MPI) via Arena, enfileiramento de Argo Workflows e limitação de jobs removidos da fila simultaneamente com kube-queue/max-jobs no ElasticQuotaTree. Logs de falhas de remoção de jobs da fila aprimorados. | Recurso | Nenhum |
Julho de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.13 | Corrigido um problema de função causado pela ausência do campo LastUpdateTime. | Correção de bug | Nenhum |
| v0.1.12 | Adicionado um switch por fila para ativar ou desativar o recurso de fila de bloqueio. Para desativar o recurso de reenfileiramento, defina o parâmetro de timeout na extensão como 0. | Recurso | Nenhum |
Junho de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.11 | O status do QueueUnit agora é sincronizado quando as tarefas são atualizadas. | Melhoria | Nenhum |
| v0.1.10 | Os nós baseados em ARM agora são compatíveis com kube-queue-controller, tf-operator-extension e pytorch-operator-extension. | Recurso | Nenhum |
Maio de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.9 | Adicionado reenfileiramento para jobs com pendência prolongada e fair queuing de várias filas. Quando pods permanecem pendentes devido a agendamento com topologia, afinidade de nó ou fragmentos de recursos, o ack-kube-queue recupera o job e o reenvia para a fila — liberando a cota ocupada e melhorando a utilização geral. | Recurso | Nenhum |
Abril de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.8 | Adicionadas filas de bloqueio e agendamento de prioridade estrita. Consulte Ativar filas de bloqueio e Ativar agendamento de prioridade estrita. | Recurso | Nenhum |
Março de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.6 | Corrigido um problema em que o status do job TensorFlow não é exibido. | Correção de bug | Nenhum |
Fevereiro de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.5 | Corrigido um problema em que o ack-kube-queue falha ocasionalmente ao excluir jobs. | Correção de bug | Nenhum |
| v0.1.4 | Corrigido um problema em que as informações de Used são ocasionalmente perdidas após a remoção de uma unidade de fila de jobs da fila. | Correção de bug | Nenhum |
Janeiro de 2023
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.3 | Corrigido um problema em que as unidades de fila de jobs são ocasionalmente perdidas. | Correção de bug | Nenhum |
| v0.1.2 | Corrigido um problema em que os jobs não conseguem ser removidos da fila por períodos prolongados. | Correção de bug | Nenhum |
| v0.1.1 | Adicionado suporte a várias filas. Jobs com cotas de recursos diferentes são enviados para filas separadas para evitar congestionamento. | Recurso | Nenhum |
Outubro de 2022
| Versão | Alteração | Tipo | Impacto na carga de trabalho |
|---|---|---|---|
| v0.1.0 | Lançamento inicial. | — | Nenhum |