Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

Binpack

Binpack é um complemento de agendamento de pods que permite que o agendador programe preferencialmente pods para nós com alta alocação de recursos. Isso reduz os fragmentos de recursos em cada nó e melhora a utilização dos recursos do cluster.

Pré-requisitos

Recursos

Binpack visa preencher tantos nós existentes quanto possível (tente não alocar nós em branco). Na implementação concreta, o algoritmo de agendamento Binpack pontua os nós que podem ser entregues, e uma pontuação mais alta indica uma maior taxa de utilização de recursos dos nós. Binpack pretende agendar centralmente as cargas de trabalho da aplicação em alguns nós em um cluster, o que facilita o dimensionamento automático dos nós do cluster.

O complemento Binpack funciona com outros complementos de agendamento do agendador para marcar nós. Você pode personalizar o peso geral do complemento e o peso de cada recurso para modificar a influência na pontuação do nó. Ao usar o Binpack para calcular as pontuações dos nós, o agendador considera recursos estendidos, como CPUs, memória e GPUs solicitados pelos pods, e calcula as pontuações com base nos pesos configurados para cada recurso.

Implementação de algoritmo

Um nó é pontuado com base no peso geral do complemento Binpack e no peso de cada recurso. Cada tipo de recurso solicitado pelos pods a serem agendados é pontuado. Tomando CPUs como exemplo, a pontuação da CPU é calculada usando a seguinte fórmula:

CPU.weight x (Requested + Used)/Allocatable

Um peso maior da CPU leva a uma pontuação mais alta. Um maior uso de recursos de um nó leva a uma pontuação de nó mais alta. A mesma regra se aplica a recursos de memória e GPU. Os parâmetros na fórmula para marcar um recurso são os seguintes:

  • CPU.weight: peso da CPU personalizado
  • Requested: recursos de CPU solicitados pelos pods a serem agendados
  • Used: recursos de CPU que foram usados no nó atual
  • Allocatable: recursos totais da CPU disponíveis no nó atual

O complemento Binpack calcula a pontuação de um nó usando a seguinte fórmula:

Binpack.weight x (CPU.score + Memory.score + GPU.score)/(CPU.weight + Memory.weight + GPU.weight) x 100

Um peso de Binpack maior leva a uma pontuação mais alta. Um maior peso de recursos leva a uma maior influência na pontuação do nó. Os parâmetros na fórmula para marcar um nó são os seguintes:

  • Binpack.weight: peso do Binpack
  • CPU.score: pontuação de CPU calculada; CPU.weight: peso de CPU personalizado
  • Memory.score: pontuação de memória calculada; Memory.weight: peso de memória personalizado
  • GPU.score: pontuação calculada da GPU; GPU.weight: peso personalizado da GPU
Figura 1 Exemplo de Binpack

Como mostrado na figura, há dois nós no cluster. Quando os pods precisam ser agendados, a política de Binpack pontua os dois nós separadamente.

  1. A pontuação para o nó 1 é a seguinte:

    Cada recurso é pontuado usando a seguinte fórmula: CPU.weight x (Requested + Used)/Allocatable

    • Pontuação da CPU: 1 x (2 + 4)/8 = 0,75
    • Pontuação de memória: 1 x (4 + 8)/16 = 0,75
    • Pontuação da GPU: 2 x (4 + 4)/8 = 1

    A pontuação total de cada nó é calculada usando a seguinte fórmula: Binpack.weight x (CPU.score + Memory.score + GPU.score)/(CPU.weight + Memory.weight + GPU.weight) x 100

    Pontuação do nó 1: 5 x (0,75 + 0,75 + 1)/(1 + 1 + 2) x 100 = 312,5

  2. A pontuação para o nó 2 é a seguinte:
    • Pontuação da CPU: 1 x (2 + 6)/8 = 1
    • Pontuação de memória: 1 x (4 + 8)/16 = 0,75
    • Pontuação da GPU: 2 x (4 + 4)/8 = 1

    Pontuação do nó 2: 5 x (1 + 0.75 + 1)/(1 + 1 + 2) x 100 = 343,75

Os resultados do cálculo mostram que a pontuação do nó 2 é maior que a do nó 1. De acordo com a política de Binpack, novos pods serão preferencialmente agendados para o nó 2.

Procedimento

Depois que o Volcano é instalado, a política de Binpack entra em vigor por padrão. Se a configuração padrão não puder atender aos seus requisitos, você poderá personalizar o peso do complemento Binpack e o peso de cada recurso na página Scheduling Configuration. Para fazer isso, execute as seguintes operações:

  1. Efetue logon no console do CCE.
  2. Clique no nome do cluster para acessar o console do cluster. Escolha Settings no painel de navegação e clique na guia Scheduling Configuration.
  3. Na área Resource utilization optimization scheduling, modifique as configurações de Binpack.

    Figura 2 Agendamento da otimização da utilização de recursos

  4. Clique em Confirm.