Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Настраивая конфигурацию узла, можно настроить параметры операционной системы (ОС) или параметры kubelet в соответствии с потребностями рабочих нагрузок. При создании кластера AKS или добавлении пула узлов в кластер можно настроить подмножество часто используемых параметров ОС и kubelet. Чтобы настроить параметры за пределами этого подмножества, используйте DaemonSet, чтобы внести необходимые настройки, не теряя поддержку AKS для своих узлов.
Prerequisites
По мере того как в службе добавляется поддержка новых настроек и параметров kubelet, может потребоваться регистрация флага предварительной функции. Если требуется флаг предварительной версии, ссылка на параметры конфигурации пользовательского узла вызывает ее.
Требования к предварительной версии параметров kubelet kubeReserved и hardEvictionThreshold
Внимание
Предварительные версии функций AKS доступны на условиях самообслуживания и по выбору пользователя. Предварительные версии предоставляются "как есть" и "при наличии". На них не распространяются соглашения об уровне обслуживания и ограниченная гарантия. Предварительные версии AKS сопровождаются частичной поддержкой клиентов на основе принципа лучших усилий. Как таковые, эти функции не предназначены для использования в производстве. Для получения дополнительной информации ознакомьтесь со следующими статьями поддержки:
Установите расширение aks-preview Azure CLI
Чтобы установить расширение aks-preview, выполните следующую команду:
az extension add --name aks-previewВыполните следующую команду, чтобы обновить до последней версии расширения:
az extension update --name aks-preview
Зарегистрируйте флаг функции CustomNodeConfigPreview в своей подписке Azure, прежде чем использовать параметры kubelet kubeReserved и hardEvictionThreshold в предварительной версии.
Регистрация флага компонента CustomNodeConfigPreview
CustomNodeConfigPreviewЗарегистрируйте флаг компонента с помощьюaz feature registerкоманды.az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Через несколько минут отобразится состояние Registered (Зарегистрировано).
Проверьте состояние регистрации с помощью
az feature showкоманды.az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"Когда отображается состояние Зарегистрирован, обновите регистрацию поставщика ресурсов Microsoft.ContainerService с помощью команды
az provider register.az provider register --namespace "Microsoft.ContainerService"
Создание пользовательских файлов конфигурации узлов для пулов узлов AKS
Чтобы изменить конфигурацию операционной системы и kubelet, создайте новый файл конфигурации с нужными вам параметрами и настройками. Если значение параметра не указано, используется значение по умолчанию.
Примечание.
В следующих примерах показаны распространенные параметры конфигурации. Измените параметры в соответствии с требованиями рабочей нагрузки. Полный список поддерживаемых пользовательских параметров конфигурации см. в разделе "Параметры конфигурации пользовательского узла" для AKS.
Конфигурация Kubelet
Создайте файл linuxkubeletconfig.json со следующим содержимым.
{
"cpuManagerPolicy": "static",
"cpuCfsQuota": true,
"cpuCfsQuotaPeriod": "200ms",
"imageGcHighThreshold": 90,
"imageGcLowThreshold": 70,
"topologyManagerPolicy": "best-effort",
"allowedUnsafeSysctls": [
"kernel.msg*",
"net.*"
],
"failSwapOn": false
}
Чтобы использовать параметры kubelet функции Node Customization Preview в пулах узлов Linux, добавьте kubeReserved и hardEvictionThreshold в файл конфигурации kubelet. В следующем примере резервируются ЦП и память для системных демонов Kubernetes, а также настраиваются пороги жёсткого вытеснения kubelet:
{
"cpuManagerPolicy": "static",
"kubeReserved": {
"cpuMillicores": 200,
"memoryMB": 1024
},
"hardEvictionThreshold": {
"memoryAvailable": "20%",
"nodeFsAvailable": "10%",
"nodeFsInodesFree": "5%"
}
}
Используйте kubeReserved и hardEvictionThreshold только в пулах узлов Linux. Для обеих настроек требуется флаг функции CustomNodeConfigPreview.
Конфигурация ОС
Создайте файл linuxosconfig.json со следующим содержимым.
{
"transparentHugePageEnabled": "madvise",
"transparentHugePageDefrag": "defer+madvise",
"swapFileSizeMB": 1500,
"sysctls": {
"netCoreSomaxconn": 163849,
"netIpv4TcpTwReuse": true,
"netIpv4IpLocalPortRange": "32000 60000"
}
}
Создание кластера AKS с помощью пользовательских файлов конфигурации
Примечание.
При создании нового кластера AKS следует учитывать следующие сведения при использовании пользовательских файлов конфигурации:
- Если при создании кластера указать конфигурацию, конфигурация применяется только к узлам в начальном пуле узлов. Кластер сохраняет значения по умолчанию для любых параметров, не настроенных в JSON-файле.
-
CustomLinuxOsConfigне поддерживается для типа ОС Windows. - Параметры kubelet, доступные в предварительной версии (
kubeReservedиhardEvictionThreshold), поддерживаются только в пулах узлов Linux и требуют флага функцииCustomNodeConfigPreview. Выполните действия по регистрации, указанные в разделе Предварительные требования дляkubeReservedиhardEvictionThresholdпараметров kubelet, прежде чем создавать кластер или пул узлов.
Создайте новый кластер с помощью пользовательских файлов конфигурации, выполнив az aks create команду и указав файлы конфигурации для --kubelet-config параметров и --linux-os-config параметров. В следующем примере команды создается новый кластер с пользовательскими ./linuxkubeletconfig.json и ./linuxosconfig.json файлами:
az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json
Добавление пула узлов с помощью пользовательских файлов конфигурации
Примечание.
При использовании пользовательских файлов конфигурации следует учитывать следующие сведения, чтобы добавить новый пул узлов в существующий кластер AKS:
- При добавлении пула узлов Linux в существующий кластер можно указать конфигурацию kubelet, конфигурацию ОС или оба. При добавлении пула узлов Windows в существующий кластер можно указать только конфигурацию kubelet. Если при добавлении пула узлов указать конфигурацию, конфигурация применяется только к узлам в новом пуле узлов. Пул узлов сохраняет значения по умолчанию для любых параметров, не настроенных в JSON-файле.
-
CustomKubeletConfigподдерживается для пулов узлов Linux и Windows. - Параметры kubelet, доступные в предварительной версии (
kubeReservedиhardEvictionThreshold), поддерживаются только в пулах узлов Linux и требуют флага функцииCustomNodeConfigPreview. Выполните шаги регистрации, описанные в разделе Предварительные требования дляkubeReservedиhardEvictionThresholdпараметров kubelet, прежде чем создавать кластер или пул узлов.
Создайте новый пул узлов Linux с помощью команды az aks nodepool add и укажите файлы конфигурации в параметрах --kubelet-config и --linux-os-config. Следующая команда создает новый пул Linux-узлов с кастомизированным файлом ./linuxkubeletconfig.json.
az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json
Были применены параметры подтверждения
После применения настраиваемой конфигурации узла можно подтвердить применение параметров к узлам, подключившись к узлу и убедившись sysctl , что изменения конфигурации были внесены в файловую систему.
Просмотр поддерживаемых пользовательских параметров конфигурации
Полный список поддерживаемых параметров конфигурации kubelet и ОС Linux, допустимых значений, значений по умолчанию и описаниям см. в параметрах конфигурации пользовательского узла для AKS.
Рекомендации по настройке пользовательских узлов
При настройке конфигурации узла следует учитывать следующие рекомендации.
- Обновления образа узла повторно применяют пользовательские конфигурации узла.
- Операции горизонтального масштабирования сохраняют пользовательские конфигурации узлов.
- AKS не выполняет предварительную валидацию каждого параметра или значения настраиваемой конфигурации узла. Убедитесь, что указанные параметры и значения конфигурации пользовательского узла поддерживаются и допустимы, чтобы избежать потенциальных проблем с узлами кластера.
- Параметры
kubeReservedиhardEvictionThresholdпредварительной версии доступны только в пулах узлов Linux. - Если вы настроите
kubeReserved, значения должны быть положительными и не могут превышать емкость ЦП или памяти, доступную в целевом пуле узлов. - Если вы настраиваете
hardEvictionThreshold, используйте только поддерживаемые единицы:Ki,Mi,Giили%дляmemoryAvailableиnodeFsAvailable, а также необработанное число или%дляnodeFsInodesFree. - Значения по умолчанию для параметров конфигурации пользовательских узлов часто изменяются с новыми версиями операционной системы. При применении пользовательских конфигураций узлов просмотрите значения по умолчанию для параметров, которые вы настраиваете, чтобы убедиться, что пользовательские параметры подходят для версии ОС узлов кластера.
- Ограничение числа пользователей, имеющих разрешения на изменение конфигурации пользовательского узла, чтобы предотвратить непредвиденные последствия для стабильности кластера и производительности. Рекомендуется использовать авторизацию идентификатора Microsoft Entra для API Kubernetes , чтобы ограничить доступ к параметрам конфигурации кластера.
- Отделяйте пулы узлов с настраиваемыми конфигурациями от тех, кто не настраивает конфигурации, чтобы предотвратить непредвиденные последствия для рабочих нагрузок, которые могут быть чувствительны к определенным изменениям конфигурации. Например, если у вас есть критическая рабочая нагрузка, требующая определенных параметров kubelet, рассмотрите возможность изоляции рабочей нагрузки в выделенном пуле узлов с необходимой настраиваемой конфигурацией kubelet.
Связанный контент
- Узнайте, как настроить кластер AKS.
- Узнайте, как обновить образы узлов в кластере.
- Сведения о том, как обновить кластер до последней версии Kubernetes, см. в статье Обновление кластера Службы Azure Kubernetes (AKS).
- Посмотрите список часто задаваемых вопросов об AKS, чтобы найти ответы на некоторые распространенные вопросы об AKS.