ack-koordinator é um sistema de agendamento com consciência de QoS (quality of service). Ele usa recursos como CPU Burst e superalocação dinâmica de recursos para otimizar o uso de recursos do cluster, garantindo a qualidade de service para aplicações de alta prioridade e aumentando a estabilidade geral do sistema. ack-koordinator também oferece suporte a criação de perfis de recursos e reagendamento. Este tópico apresenta o componente ack-koordinator e suas notas de versão.
Para o histórico de versões e alterações do componente, consulte Release notes.
ack-koordinator
ack-koordinator é um sistema de agendamento com consciência de QoS baseado em Kubernetes que melhora a utilização de recursos do cluster e fornece garantias de QoS para aplicações com diferentes prioridades. Isso evita que a contenção de recursos afete o desempenho das aplicações. Por exemplo, ack-koordinator suporta a colocalização de aplicações orientadas a service e tarefas de processamento em lote no mesmo nó. Ele usa capacidades como superalocação dinâmica de recursos e agendamento com consciência de QoS para melhorar a utilização de recursos, garantindo QoS para aplicações de service. Isso o torna adequado para processamento em lote, computação de alto desempenho (HPC), tarefas de IA e cenários de machine learning. ack-koordinator é o componente central que habilita o agendamento com consciência de QoS no ACK. Ele oferece recursos como limites elásticos de recursos, agendamento com consciência de topologia, superalocação dinâmica de recursos, agendamento com consciência de carga, reagendamento e criação de perfis de recursos.
Para começar, acesse o ACK console para instalar o componente ack-koordinator no seu cluster ACK. Em seguida, ative e utilize seus recursos com um ConfigMap ou anotações de Pod.
Architecture
ack-koordinator é composto por componentes centrais e componentes no nível do nó.
-
Koordinator Manager: componente central implantado como um Deployment. É composto por uma instância primária e uma instância em standby para garantir alta disponibilidade.
SLO Controller: gerencia a superalocação de recursos. Ajusta dinamicamente os recursos superalocados no cluster com base no status de execução dos nós durante a colocalização e gerencia políticas de SLO diferenciadas para cada nó.
Recommender: fornece o recurso de criação de perfis de recursos. Estima os requisitos de pico de recursos para workloads a fim de simplificar a configuração de especificações de recursos de contêineres.
Koordinator Descheduler: componente central implantado como um Deployment que fornece o recurso de reagendamento.
Koordlet: componente no nível do nó implantado como um DaemonSet. Suporta superalocação dinâmica de recursos, agendamento com consciência de carga e agendamento com consciência de QoS em cenários de colocalização.
Plug-in de agendamento do Koordinator: o módulo Koord-Scheduler não é incluído ao instalar o componente ack-koordinator. Em vez disso, suas capacidades de agendamento são integradas como um plug-in no agendador ACK e instaladas por padrão.
Em um ACK Serverless cluster, o ack-koordinator inclui apenas o componente Koordinator Manager e fornece o recurso de criação de perfis de recursos.
Versioning
A partir da v1.1.1-ack.1, o número de versão do ack-koordinator utiliza o formato x.y.z-ackn.
x.y.z: corresponde à versão open source do Koordinator, indicando que o ack-koordinator suporta todos os recursos dessa versão.ackn: representa aprimoramentos de recursos e otimizações baseados na versão open source.
Conceitos principais
Recursos suportados
O componente ack-koordinator inclui os recursos da versão open source correspondente do Koordinator. Durante a instalação, apenas as feature-gates para recursos comuns são ativadas por padrão. Para usar outros recursos, ative manualmente as feature-gates correspondentes para os módulos do ack-koordinator. Para mais informações, consulte a documentação oficial do Koordinator.
Tipo | Recurso | Descrição | Consistência com a versão open source |
Agenda Pods para nós com menor carga em tempo real, equilibrando a carga do cluster e reduzindo o risco de falha nos nós. | Sim | ||
Melhora o QoS das aplicações fornecendo recursos de CPU extras e temporários durante picos de carga, por meio da detecção automática de throttling de CPU e do ajuste adaptativo dos parâmetros do contêiner. | Sim | ||
Fixa um Pod para execução em núcleos de CPU específicos de um nó, mitigando a degradação de desempenho causada por troca de contexto de CPU e acesso de memória cross-NUMA. | Não | ||
Quantifica os recursos de CPU e memória alocados, mas não utilizados, coletando dados de carga do nó em tempo real, disponibilizando esses recursos ociosos para workloads BestEffort e garantindo equidade. | Sim | ||
Em cenários de superalocação dinâmica de recursos, limita o uso de CPU dos Pods BE para proteger o desempenho dos Pods LS no nó. | Sim | ||
Garante recursos de CPU para aplicações de alta prioridade (LS), prevenindo a contenção de recursos com aplicações de menor prioridade. | Sim | ||
Permite definir parâmetros de QoS para contêineres com base em sua prioridade, priorizando o desempenho das aplicações de alta prioridade e garantindo equidade no uso de memória. | Sim | ||
Isola o uso de cache L3 e largura de banda de memória entre aplicações de diferentes prioridades, protegendo o desempenho das aplicações LS. | Sim | ||
Permite modificar dinamicamente os parâmetros de isolamento no nível do nó (CPU, memória e I/O de disco) para um Pod ou Deployment sem reinicialização, alterando seus arquivos cgroup. | Não | ||
Utiliza o Intel® Data Streaming Accelerator (DSA) para melhorar a eficiência do processamento de dados em workloads intensivos em dados no nó, aprimorando ainda mais a aceleração do acesso à memória próxima para contêineres. | Não | ||
Melhora o desempenho de acesso à memória para workloads intensivos em memória, migrando com segurança a memória de nós NUMA remotos para locais em aplicações com CPU fixada, aumentando a taxa de acerto de acesso à memória local. | Não | ||
Reagenda Pods mal posicionados para nós mais saudáveis, mantendo a integridade do cluster, otimizando o uso de recursos e melhorando o QoS dos workloads. Esse processo geralmente é acionado por utilização desigual de recursos ou alta carga no nó. | Sim | ||
Remove automaticamente Pods de nós que excedem um watermark de carga especificado, prevenindo desequilíbrios severos de carga. | Sim | ||
GPU topology awareness | Otimiza o desempenho agendando Pods para o nó NUMA mais adequado, reduzindo o acesso cross-NUMA. | Não | |
Analisa dados históricos de uso de recursos para recomendar especificações de recursos para contêineres, simplificando a configuração dos valores de | Não | ||
Instalação e gerenciamento
ack-koordinator está disponível na página Add-ons do ACK console. Instale, atualize e desinstale o componente na página Add-ons.
Pré-requisitos
Tenha um cluster ACK com Kubernetes 1.18 ou posterior. Para mais informações sobre como atualizar um cluster, consulte Manually upgrade a cluster.
Tenha o Helm v3.0 ou posterior instalado. Para atualizar o Helm, consulte [[Component Upgrade] Announcement on Helm V2 Tiller Upgrade](t1872780.dita#task_2435198) e How do I manually upgrade the version of Helm?.
Instalar e gerenciar o componente
Instale o componente ack-koordinator na página Add-ons. Retorne a essa página sempre que precisar modificar os parâmetros do componente ou atualizá-lo.
Para versões do componente anteriores à v0.7 implantadas pelo Marketplace, consulte Migrate ack-koordinator from Marketplace to add-ons para concluir a migração.
Instalar o componente: siga os passos abaixo para instalar o componente e verificar a implantação.
Modificar parâmetros do componente: o sistema reimplanta automaticamente o ack-koordinator com base na nova configuração.
Atualizar o componente: se você tiver modificado manualmente os módulos implantados do ack-koordinator, como Deployments ou DaemonSets, a atualização sobrescreverá suas configurações personalizadas.
Acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .
Na página Add-ons, clique na aba Install, localize e selecione o componente ack-koordinator(ack-slo-manager) e clique em Next.
Siga as instruções na tela para concluir a configuração do componente e clique em Next.
Verifique as informações de configuração e clique em OK.
Desinstalar o componente
Limpar ConfigMaps dos nós existentes
O recurso de agendamento de CPU com consciência de topologia cria um ConfigMap de topologia no namespace kube-system para cada nó ACK. A partir da v0.5.1, o ack-koordinator limpa automaticamente os ConfigMaps de nós removidos. No entanto, ao desinstalar o ack-koordinator, os ConfigMaps dos nós existentes são mantidos. Esses ConfigMaps remanescentes não afetam outros recursos, mas ocupam espaço de armazenamento. Recomendamos que você os limpe.
Na página Add-ons, localize o ack-koordinator e siga as instruções na tela para desinstalar o componente.
-
Exclua os ConfigMaps de topologia.
No painel de navegação à esquerda, escolha . No topo da página, selecione o namespace kube-system.
Na caixa de pesquisa, insira -numa-info. Na lista, localize o ConfigMap que corresponde ao formato
${NODENAME}-numa-info. Na coluna Actions do ConfigMap, clique em Delete e siga as instruções na tela.
Limpar objetos CRD
Ao desinstalar o componente ack-koordinator, alguns objetos CRD podem permanecer. Esses objetos remanescentes não afetam outros recursos, mas ocupam espaço de armazenamento. Caso você planeje reinstalar o ack-koordinator, esses objetos podem interferir no funcionamento do componente. Recomendamos que você os limpe. Os CRDs afetados estão listados abaixo.
|
autoscaling.alibabacloud.com |
slo.koordinator.sh |
|
Expanda |
Expanda o API Group slo.koordinator.sh para ver a versão v1alpha1 contendo dois tipos de recursos CRD: NodeSLO e NodeMetric. |
Faturamento
A instalação ou o uso do componente ack-koordinator é gratuito. No entanto, custos podem ser incorridos nos seguintes cenários:
ack-koordinator é um componente não gerenciado que consome recursos dos nós worker após a instalação. Configure as solicitações de recursos para cada módulo durante a instalação.
Por padrão, o ack-koordinator expõe métricas de monitoramento para recursos como criação de perfis de recursos e agendamento refinado no formato Prometheus. Se você selecionar a opção Enable Prometheus monitoring metrics for ack-koordinator e usar o Managed Service for Prometheus, essas métricas serão cobradas conforme custom metrics. Os valores variam com base em fatores como tamanho do cluster e número de aplicações. Antes de ativar esse recurso, recomendamos a leitura de Billing of Prometheus instances para entender a camada gratuita e os preços para métricas personalizadas. Para monitorar e gerenciar o uso de recursos, utilize usage query.
Informações relacionadas
Relação entre ack-koordinator e ack-slo-manager
ack-slo-manager é o predecessor do ack-koordinator e incubou o projeto open source Koordinator. À medida que o Koordinator amadureceu, suas tecnologias foram incorporadas de volta ao ack-slo-manager. O ack-koordinator oferece os recursos da versão open source do Koordinator e disponibiliza mais capacidades do que seu predecessor. Para acessar novos recursos e correções de bugs, atualize para a versão mais recente do componente seguindo as instruções em Migrate ack-koordinator from Marketplace to Add-ons.
Migrar o ack-koordinator do Marketplace para Add-ons
Se você implantou o ack-koordinator pelo Marketplace (versões anteriores à v0.7), desinstale-o e reinstale-o. Siga as instruções abaixo para concluir a migração.
Se você modificou o ConfigMap do ack-koordinator do Marketplace, faça um backup antes de atualizar. Caso não tenha modificado o ConfigMap, avance para o passo 2 e atualize o componente diretamente.
-
Faça backup do ConfigMap do ack-koordinator usando kubectl ou o console.
kubectl
-
Execute o comando a seguir para salvar a configuração original no arquivo slo-config.yaml. Substitua o namespace (por exemplo, kube-system) e o nome (por exemplo, ack-slo-manager-config) pelos valores reais do seu ConfigMap.
kubectl get cm -n kube-system ack-slo-manager-config -o yaml > slo-config.yaml Execute o comando
vim slo-config.yamlpara editar o arquivo. Altere o namespace do ConfigMap parakube-system, altere o camponameparaack-slo-confige remova todas asannotationselabelsdo ConfigMap para evitar que sejam sobrescritas durante a atualização.-
Execute o comando a seguir para aplicar a configuração modificada ao cluster.
kubectl apply -f slo-config.yaml
Console
-
Registre os pares de chave-valor do ConfigMap original.
No painel de navegação à esquerda, escolha . No topo da página, selecione o Namespace que você especificou ao instalar o ack-koordinator pelo Marketplace. O namespace padrão é kube-system.
Na caixa de pesquisa Name, insira ack-slo-manager-config, clique no nome do ConfigMap de destino e registre os pares de chave-valor do ConfigMap.
-
Crie um novo ConfigMap usando os pares de chave-valor do ConfigMap original.
No painel de navegação à esquerda, escolha . No topo da página, selecione All Namespaces.
No canto superior direito da página ConfigMaps, clique em Create. Defina ConfigMap Name como ack-slo-config e selecione o namespace kube-system. Clique em + Add, insira os pares de chave-valor registrados e clique em Create.
-
-
No painel de navegação à esquerda, escolha . Localize o componente ack-slo-manager instalado pelo Marketplace e, na coluna Actions, clique em Delete para desinstalá-lo.
Na página Add-ons, instale a versão mais recente do ack-koordinator. Para mais informações, consulte Install and manage components.
ImportanteSe você modificou o ConfigMap do componente ack-koordinator do Marketplace, insira o nome do ConfigMap de backup criado no Passo 1 (por exemplo, ack-slo-config) no campo de parâmetro correspondente na caixa de diálogo ack-koordinator Parameters.
Migrar do resource-controller para o ack-koordinator
O componente resource-controller foi descontinuado. O ack-koordinator agora suporta todos os recursos do resource-controller, como topology-aware CPU scheduling e dynamically modifying the resource parameters of a pod. Se o seu cluster utiliza resource-controller, siga estes passos para migrar do resource-controller para o ack-koordinator.
-
Atualize o resource-controller para a versão mais recente.
Acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .
Na página Add-ons, localize o resource-controller e siga as instruções na tela para atualizar o componente.
-
Instale e configure o ack-koordinator.
Na página Add-ons, localize o ack-koordinator e siga as instruções na tela para instalá-lo.
-
Após a conclusão da instalação, acesse a página Add-ons e clique em Configuration na coluna Actions do add-on ack-koordinator. Configure o parâmetro agentFeatures, que é o interruptor de feature-gate do Koordlet, e demais parâmetros conforme necessário. Em seguida, clique em OK.
Verifique se o cluster utiliza o recurso CPU Limit adjustment descrito em Dynamically modify the resource parameters of a pod. Esse recurso modifica o arquivo cgroups cpu.cfs_quota_us de um contêiner específico criando um CRD ou adicionando uma anotação ao pod. Se você usar esse recurso, avance para o passo ii. Caso contrário, avance para o passo c.
-
Execute o comando a seguir para obter a configuração atual de feature-gate no arquivo YAML do DaemonSet do ack-koordlet.
kubectl get daemonset -n kube-system ack-koordlet -o yaml |grep feature-gates - --feature-gates=AllAlpha=false,AllBeta=false,...,CPUBurst=true,.... -
Modifique a configuração de feature-gate do ack-koordlet para desativar o CPU Burst performance optimization policy definindo
CPUBurst=false. Use vírgulas (,) para separar os parâmetros. Mantenha as demais configurações sem alteração.Desativar a política também desativa o mecanismo CPU Burst para todos os contêineres do cluster, impedindo que dois módulos modifiquem simultaneamente o arquivo cgroups cpu.cfs_quota_us.
AllAlpha=false,AllBeta=false,...,CPUBurst=false,....Para ativar recursos elásticos de CPU para contêineres, utilize a política de otimização de desempenho CPU Burst para ajustar automaticamente a elasticidade de CPU dos pods. Para mais informações, consulte Enable the CPU Burst performance optimization policy.
-
No painel de navegação à esquerda, escolha para visualizar o status de implantação do ack-koordinator.
Na página Add-ons, localize o resource-controller e siga as instruções na tela para desinstalá-lo.
FAQ <!--@heading {"id":"title_hnd_aac_nr
Notas de versão
Julho de 2026
Versão | Endereço da imagem | Data | Alterações | Impacto |
v1.8.0-ack1.25 |
| 29 de julho de 2026 |
| Nenhum |
Janeiro de 2026
Versão | Endereço da imagem | Data | Alterações | Impacto |
v1.6.1-ack1.23 |
| 30 de janeiro de 2026 |
| Nenhum |
Novembro de 2025
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.6.1-ack1.21 |
| 06 de novembro de 2025 |
| Nenhum |
Agosto de 2025
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.6.1-ack1.19 |
| 08 de agosto de 2025 |
| Nenhum |
Julho de 2025
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.6.1-ack1.18 |
| 30 de julho de 2025 |
| Nenhum |
v1.6.1-ack1.17 |
| 14 de julho de 2025 |
| Nenhum |
v1.6.1-ack1.16 |
| 04 de julho de 2025 |
| Nenhum |
Setembro de 2024
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.5.0-ack1.14 |
| 12 de setembro de 2024 |
| Nenhum |
Julho de 2024
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.5.0-ack1.12 |
| 29 de julho de 2024 | Interfaces internas otimizadas | Nenhum |
Janeiro de 2024
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.3.0-ack1.8 |
| 2024-01-24 |
| Nenhum |
Dezembro de 2023
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.3.0-ack1.7 |
| 21 de dezembro de 2023 |
| Nenhum |
Outubro de 2023
Versão | Imagem | Data de lançamento | Descrição | Impacto |
v1.3.0-ack1.6 |
| 19 de outubro de 2023 | Interfaces internas otimizadas. | Nenhum |
Junho de 2023
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.2.0-ack1.3 |
| 2023-06-09 | Interfaces internas otimizadas. | Nenhum |
Abril de 2023
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.2.0-ack1.2 |
| 25 de abril de 2023 |
| Nenhum |
Março de 2023
Versão | Endereço da imagem | Data de lançamento | Descrição | Impacto |
v1.1.1-ack.2 |
| 23 de março de 2023 | Interfaces internas otimizadas. | Nenhum |