#kubernetes #linux-kernel #cpu-usage
#kubernetes #linux-ядро #загрузка процессора
Вопрос:
Kubernetes CPU manager предоставляет способ статической настройки ограничения ресурсов процессора. Однако в некоторых случаях это может привести к пустой трате ресурсов кластера, например, приложению может потребоваться значительный объем ЦП во время его запуска, позже выделенные ресурсы больше не требуются, и в таком случае имеет смысл оптимизировать ЦП и снизить лимит ЦП. Я думаю, что Kubernetes на сегодняшний день не поддерживает такой сценарий, мне интересно, есть ли какой-либо обходной путь для решения этой проблемы, диспетчер ЦП полагается на CFS, технически невозможно было бы динамически изменять конфигурацию системы ( cpu.cfs_quota_us
например) после создания модуля Kubernetes с использованием начальных ограничений ЦП?
Комментарии:
1. Сейчас это невозможно, но есть предложение по улучшению такого рода. вы можете просмотреть улучшения /keps/sig-node/1287-in-place-update-pod-resources /
Ответ №1:
Для достижения этой цели вы можете использовать VerticalPodAutoscaler. Для этого вам нужно будет определить пользовательский ресурс, в котором подробно указано, какие модули должны быть нацелены и какую политику использовать: пример:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: my-app-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: my-app
updatePolicy:
updateMode: "Auto"
Более подробная информация об установке и использовании VPA: https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
Комментарии:
1. Спасибо за предложение. К сожалению, VPA не решает мою проблему, которая в основном связана с увеличением потребления процессора при запуске, она должна уничтожить модуль и воссоздать его для автоматического масштабирования по вертикали, что означает, что либо CPU будет регулироваться, либо устанавливается с большим значением во время запуска, я ищу динамический способ настройки ограничения CPUбез повторного создания модуля.
2. Есть ли здесь удача @RafikELYAAGOUBI? Я также сталкиваюсь с той же проблемой.
3. К сожалению, нет.
Ответ №2:
Похоже, что этот пост дает решение или сброс ограничений процессора без перезапуска модуля.
Существует также MultiDimentionalAutoScaler, который кажется очень универсальным и может обрабатывать множество случаев, которые вам могут понадобиться