Escalator - это партийный или оптимизированный горизонтальный автомасляр для Kubernetes
Он предназначен для больших рабочих нагрузок на основе партии или работы, которые не могут быть принуждены дать силу и перемещен, когда кластер должен масштабироваться - эскалатор будет обеспечить, чтобы стручки были завершены на узлах, прежде чем их завершить. Он также оптимизирован для масштабирования кластера как можно быстрее, чтобы гарантировать, что стручки не остаются в ожидаемом состоянии.
Рассчитайте запросы и емкость, чтобы определить, масштабируется, вниз, вниз или оставаться в текущей масштабе
Ждать, пока не Daemonset Pods на узлах завершены, прежде чем завершить узел
Разработано для работы над выбранными группами автоматического масштаба, чтобы позволить Autoscaler Kubernetes по умолчанию продолжать масштабировать рабочие нагрузки на основе обслуживания
Сначала автоматически прекращайте старые узлы
Поддержка Slack Space для обеспечения дополнительного места в случае всплеска запланированных стручков
Не прекращает или фактор бы оцепленные узлы в расчеты - позволяет оцепленным узлам сохраняться для отладки
Поддержка различных облачных провайдеров - AWS только на данный момент
Метрики масштабирования и использования
Выборы лидеров, чтобы вы могли запустить развертывание HA внутри кластера.
Основная поддержка нескольких различных типов экземпляров в группе узлов.
Потребность в этом автомассале получена из нашего собственного опыта с запланированными очень большими рабочими нагрузками, а автомасшестоящий по умолчанию недостаточно быстро увеличивает кластер. Эти рабочие нагрузки не могут быть принуждены дать силу Autoscaler по умолчанию и должны завершить до того, как узел может быть прекращен.
Смотрите документы
Kubernetes Версия 1.24+. Escalator был протестирован и развернут на 1.24+ и новее. Старые версии Kubernetes могут иметь ошибки или проблемы, которые предотвратят его должным образом.
GO версия 1.20+
Зависимости и их заблокированные версии можно найти в go.mod
и go.sum
.
# Принесите зависимости и построить сборку эскатурмаке
Запустите Cmd/main.go -kubeConfig = ~/.kube/config -nodegroups = nodegroups_config.yaml
См. Развертывание для полной документации по развертыванию.
# Создайте Docker ImageDocker Build -T ATLASSIAN/ESCALATOR.# CREATE RBAC CONFIGURUTIONKUBECTL CREATE DOCS/DOCS/DEPORTING/ESCALATOR -RBAC.YAML# CREATE CONFIG MAP -MODIFIE в соответствии с вашими потребностями. # Create deploymentkubectl create -f docs/deployment/escalator -reployment.yaml
См. Конфигурацию
сделать тест
Например, чтобы проверить пакет контроллера:
Перейти тест ./pkg/controller
Получите запросы, проблемы и комментарии приветствуются. Для запросов на привлечение:
Добавить тесты для новых функций и исправлений ошибок
Следуйте существующему стилю (мы используем Goreturns для форматирования и эскалатора ворса)
Разделили не связанные изменения в несколько запросов на притяжение
Посмотрите на существующие проблемы, чтобы начать вносить свой вклад.
Для больших изменений убедитесь, что вы начали обсуждение сначала, создав проблему и объяснив предполагаемые изменения.
Atlassian требует, чтобы участники подписали лицензионное соглашение о участнике, известное как CLA. Это служит записи, в которой говорится, что участник имеет право вносить вклад в код/документацию/перевод в проект и готов использовать его в распределениях и производных работах (или готова передавать право собственности).
Прежде чем принять ваши взносы, мы просим вас, пожалуйста, перейдите по соответствующей ссылке ниже, чтобы подписать CLA в цифровом виде. Корпоративный CLA предназначен для тех, кто участвует в качестве члена организации, а отдельный CLA предназначен для тех, кто вносит свой вклад в отдел.
CLA для корпоративных участников
CLA для отдельных лиц
Copyright (C) 2018 Atlassian и другие. Apache 2.0 Лицензирован, см. Файл лицензии.