Поделиться через


Резервирования ресурсов узла в Служба Azure Kubernetes (AKS)

В этой статье вы узнаете о резервировании ресурсов узла в Служба Azure Kubernetes (AKS).

Резервирование ресурсов

AKS использует ресурсы узлов, чтобы помочь узлам функционировать в составе кластера. Это использование может привести к несоответствию общих ресурсов узла и общих ресурсов в AKS.

AKS резервирует два типа ресурсов, ЦП и памяти на каждом узле для поддержания производительности и функциональности узла. По мере увеличения размера узла в ресурсах резервирования ресурсов также увеличивается из-за более высокой необходимости управления развернутыми пользователем модулями pod. Помните, что вы не можете изменить резервирования ресурсов на узле.

Резервирования ЦП

Зарезервированный ЦП зависит от типа узла и конфигурации кластера, что может привести к меньшему выделению ЦП из-за выполнения дополнительных функций. В следующей таблице показаны резервирования ЦП в милликорях:

Ядра ЦП на узле 1 ядро 2 ядра 4 ядра 8 ядер 16 ядер 32 ядра 64 ядра
Зарезервированный ЦП Kube (милликоры) 60 100 140 180 260 420 740

Резервирования памяти

В AKS зарезервированная память состоит из суммы двух значений:

AKS 1.29 и более поздних версий

  • kubelet Управляющая программа имеет правило вытеснения памяти.доступно < 100 Mi по умолчанию. Это правило гарантирует, что узел имеет по крайней мере 100 Ми распределить все время. Если узел находится ниже порогового значения доступной памяти, kubelet активирует завершение одного из запущенных модулей pod и освобождает память на хост-компьютере.

  • Частота резервирований памяти, установленных в соответствии с меньшим значением: 20 МБ * Максимальное количество модулей pod, поддерживаемых на узле + 50 МБ или 25% от общих ресурсов памяти системы.

    Примеры:

    • Если виртуальная машина предоставляет 8 ГБ памяти и узел поддерживает до 30 модулей pod, AKS резервирует 20 МБ * 30 макс. Pod + 50 МБ = 650 МБ для зарезервированного kube. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • Если виртуальная машина предоставляет 4 ГБ памяти и узел поддерживает до 70 модулей pod, AKS резервирует 25 % * 4 ГБ = 1000 МБ для kube-зарезервированных, так как это менее 20 МБ * 70 Макс Pod + 50 МБ = 1450 МБ.

    Дополнительные сведения см. в разделе "Настройка максимальных модулей pod на узел" в кластере AKS.

Версии AKS до версии 1.29

  • kubelet Управляющая программа имеет правило вытеснения памяти.доступно < 750 Mi по умолчанию. Это правило гарантирует, что узел имеет по крайней мере 750 Mi распределить все время. Если узел находится ниже порогового значения доступной памяти, kubelet активирует завершение одного из запущенных модулей pod и освобождает память на хост-компьютере.
  • Регрессивная частота резервирования памяти для управляющей программы kubelet (kube-reserved).
    • 25 % от первых 4 ГБ памяти
    • 20 % следующих 4 ГБ памяти (до 8 ГБ)
    • 10 % следующих 8 ГБ памяти (до 16 ГБ)
    • 6 % следующих 112 ГБ памяти (до 128 ГБ)
    • 2 % любой памяти более 128 ГБ

Примечание.

AKS резервирует дополнительный 2 ГБ для системных процессов на узлах Windows, которые не входят в вычисляемую память.

Правила выделения памяти и ЦП предназначены для следующих способов:

  • Обеспечьте работоспособность узлов агентов, включая некоторые системные модули размещения, критически важные для работоспособности кластера.
  • Чтобы узел сообщал меньше распределимой памяти и ЦП, чем сообщал, если он не был частью кластера Kubernetes.

Например, если узел предлагает 7 ГБ, он сообщает 34% памяти, не удаляемой, включая пороговое значение вытеснения 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Помимо резервирования для Kubernetes, базовая ОС узла также резервирует ресурсы ЦП и памяти для поддержания функций ОС.

Соответствующие рекомендации см. в разделе Рекомендации по функциям базового расписания в AKS.

Следующие шаги