Основным преимуществом Kubernetes является возможность динамического масштабирования инфраструктуры в зависимости от спроса. Он обеспечивает несколько уровней функций автомасштабирования: горизонтальное автомасштабирование модуля (HPA) и вертикальное автомасштабирование модуля (VPA) в качестве модуля и средство автомасштабирования кластера в качестве узла.

Однако, настройка автомасштабирования кластера с существующими решениями Kubernetes может быть сложной и ограничивающей. Например, в кластере AWS EKS вы не можете напрямую управлять узлами. Вместо этого нам нужно использовать дополнительные механизмы оркестровки, такие как node groups. Предположим, мы определили т3.большой как тип экземпляра группы узлов. Когда для кластера необходимо выделить новый узел, Kubernetes Cluster Autoscaler создает новый экземпляр типа t3.large независимо от требований к ресурсам. Хотя мы можем использовать смешанные экземпляры в группах узлов, не всегда возможно удовлетворить потребности в ресурсах и быть рентабельными.

K8S Autoscaling помогает нам масштабировать горизонтально или в наших приложениях. Масштабирование на основе Pod или HPA — отличный первый шаг. Однако проблема заключается в том, что нам нужно несколько узлов K8S для хранения наших POD.


Karpenter

Karpenter — это решение для масштабирования на основе узлов, созданное для K8S и направленное на повышение эффективности и затрат. Это отличное решение, потому что нам не нужно настраивать типы экземпляров или создавать пулы узлов, что значительно упрощает настройку. С другой стороны, интеграция со спотовыми инстансами безболезненна и позволяет нам сократить наши расходы (до 90 % меньше, чем инстансы по требованию).

Karpenter — это проект развертывания узлов с открытым исходным кодом, разработанный для Kubernetes. Добавление Karpenter в кластер Kubernetes может значительно повысить эффективность и стоимость выполнения рабочих нагрузок в этом кластере.


Особенности Карпентера

  • Остерегайтесь модулей, которые планировщик Kubernetes пометил как незапланированные.
  • Оцените ограничения планирования (требования к ресурсам, селекторы узлов, сходства, допуски и ограничения распределения топологии).
  • Требуются узлы развертывания модулей, которые соответствуют потребностям модулей.
  • Запланируйте запуск модулей на новых узлах.
  • Удаляйте узлы, когда узлы больше не нужны.


Петли управления Карпентера

Karpenter имеет два контура управления, которые максимизируют доступность и эффективность вашего кластера.


Распределитель

Быстродействующий контроллер, обеспечивающий максимально быстрое планирование модулей


Релокатор

Контроллер медленного действия заменяет узлы по мере изменения емкости модуля с течением времени.

Спасибо, что дочитали мою статью до конца. Надеюсь, сегодня вы поняли что-то уникальное. Если вам понравилась эта статья, поделитесь ею со своими друзьями, а если у вас есть предложения или мысли, которыми можно поделиться со мной, пишите в поле для комментариев.

Следуйте за мной и делитесь своими мыслями,
Гитхаб
LinkedIn
Твиттер

Вышеупомянутый блог представлен в рамках «Devtron Hacktoberfest 2022», проводимого Девтрон. Посмотрите их репозиторий на Github и поставьте звезду ⭐️, если вам это нравится. Следите за Devtron на LinkedIn,