
Как узнать, сколько мин. и макс. ресурсов выделить для каждого развертывания приложения? Я настраиваю кластер, но не настроил никаких ресурсов и позволяю ему работать свободно.
Думаю, я мог бы использовать top command
для вычисления нагрузки в пиковое время и работать над этим, но все еще top говорит, что это 6% или 10%, но тогда я не уверен, как их рассчитать, чтобы получить что-то вроде 0.5 cpu
или 100 MB
. Есть ли метод/формула для определения максимума и минимума на основе top command
использования?
Я запускаю два узла t3.medium и у меня есть следующие модули httpd and tomcat in namespace1
, mysql in namepsace2
, jenkins and gitlab in namespace3
. Есть ли какое-либо руководство по минимально необходимым ресурсам? Или мне нужно вычислить это на основе top или какого-то другого метода?
решение1
Ресурсы, которые будут назначены pod, зависят от использования вашего приложения. Например, при установке jenkins
с помощью helm указывается следующеезапросы ресурсов и ограничения:
resources:
requests:
cpu: "50m"
memory: "256Mi"
limits:
cpu: "2000m"
memory: "4096Mi"
Но чтобы избежать завершения работы модуля из-за нехватки ресурсов, вы можете использоватьHorizontal Pod Autoscaler
с метриками ресурсов для масштабирования модулей вверх или вниз на основепотребление ресурсов(или любой другойпользовательские метрики, как запросы и т.д.). HPA требуетmetrics-server
для работы в вашем кластере.
Его можно легко создать с помощьюkubectl autoscale
, например:
kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10
Где --min
— минимальное количество реплик, которые необходимо запустить, а --max
— максимальное количество реплик модулей, которые будут созданы в случае увеличения нагрузки.