Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете о резервировании ресурсов узла в Azure Kubernetes Service (AKS).
Резервирование ресурсов
AKS использует ресурсы узлов, чтобы помочь узлам функционировать в составе кластера. Это использование может привести к несоответствию между общими ресурсами узла и распределяемыми ресурсами в AKS.
AKS резервирует два типа ресурсов, ЦП и памяти на каждом узле для поддержания производительности и функциональности узла. По мере увеличения ресурсов узла объём резервируемых ресурсов также увеличивается из-за более высокой потребности в управлении пользовательскими подами. Помните, что вы не можете изменить резервирования ресурсов на узле.
Резервирования ЦП
Объём зарезервированных ресурсов ЦП зависит от типа узла и конфигурации кластера, что может привести к уменьшению объёма ЦП, доступного для выделения, из-за работы дополнительных функций. В следующей таблице показаны резервирования ЦП в милликорях:
| Ядра ЦП на узле | 1 ядро | 2 ядра | 4 ядра | 8 ядер | 16 ядер | 32 ядра | 64 ядра |
|---|---|---|---|---|---|---|---|
| ЦП, зарезервированные для Kube (миллиядра) | 60 | 100 | 140 | 180 | 260 | 420 | 740 |
Резервирование памяти
В AKS зарезервированная память состоит из суммы двух значений:
AKS 1.29 и более поздние версии
По умолчанию для
kubeletдемона используется правило вытеснения memory.available < 100 Mi. Это правило гарантирует, что на узле в любой момент времени доступно для распределения не менее 100 Ми. Если объём доступной памяти на узле опускается ниже этого порогового значения,kubeletинициирует завершение одного из запущенных подов и освобождает память на хосте.Скорость резервирования памяти , заданная в соответствии с меньшим значением: 20 МБ * Максимальное количество модулей pod, поддерживаемых на узле + 50 МБ или 25% общих ресурсов памяти системы.
Examples:
- Если виртуальная машина имеет 8 ГБ памяти, а узел поддерживает до 30 подов, AKS резервирует 20 МБ * 30 макс. число подов + 50 МБ = 650 МБ для kube-reserved.
Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable. - Если виртуальная машина предоставляет 4 ГБ памяти и узел поддерживает до 70 модулей, AKS резервирует 25% * 4 ГБ = 1000 МБ для kube-reserved, так как это меньше, чем 20 МБ * 70 макс. модулей + 50 МБ = 1450 МБ.
Дополнительные сведения см. в разделе Настройка максимального количества pod на узел в кластере AKS.
- Если виртуальная машина имеет 8 ГБ памяти, а узел поддерживает до 30 подов, AKS резервирует 20 МБ * 30 макс. число подов + 50 МБ = 650 МБ для kube-reserved.
Примечание
Чтобы настроить kubeReserved значения ЦП и памяти или hardEvictionThreshold в пулах узлов Linux, используйте параметры предварительной версии для пользовательской конфигурации узлов и зарегистрируйте флаг функции AKSNodeCustomizationPreview. Дополнительные сведения см. в разделе "Настройка конфигурации узла для пулов узлов Azure Kubernetes Service (AKS)".
Версии AKS до версии 1.29
-
kubeletдемон по умолчанию имеет правило вытеснения memory.available < 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, и этот объём не входит в расчётный объём памяти.
Правила выделения памяти и ресурсов процессора предназначены для следующего:
- Поддерживайте агентские узлы в работоспособном состоянии, включая некоторые размещённые на них системные pod’ы, критически важные для работоспособности кластера.
- Заставить узел сообщать о меньшем объёме памяти, доступной для выделения, и меньшем объёме ресурсов ЦП, чем если бы он не входил в кластер Kubernetes.
Например, если узел предоставляет 7 ГБ, это означает, что 34% памяти недоступны для выделения, включая жёсткий порог вытеснения 750 МиБ.
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.
Дальнейшие действия
- Дополнительные сведения о настройке пользовательского узла в AKS.