Есть ли смысл использовать kubernetes, если мое приложение - это всего лишь 1 файл докера, который нужно масштабировать?
Какая польза от запуска кластера kubernetes вместо того, чтобы просто создавать балансировщик нагрузки, который запускает образы моего контейнера vm+.
1 ответ
Существуют значительные накладные расходы на развертывание и управление кластером Kubernetes (K8s). Если ваш масштаб не очень большой, я бы сказал, что нет.
Есть и другие варианты, которые могут быть лучше, чем нерестовые экземпляры.
AWS ECS является примером решения для управляемых контейнеров, которое может подойти.
K8s имеет ряд других преимуществ, таких как непрерывные обновления и централизованное ведение журнала и показатели производительности. Если масштаб вашего отдельного приложения велик, K8s может быть оправдано.
Как правило, если вы не масштабируете более 100 контейнеров, не используйте K8. K8 действительно сияет, когда вы используете сотни и даже тысячи контейнеров - обычно это происходит с некоторыми продвинутыми приложениями машинного обучения (ML) с большой нагрузкой на данные.
До 10 контейнеров: пользовательский Docker Swarm; поставляется с Docker, т.е. вам не нужно его устанавливать или настраивать, как K8. Если вы хотите узнать больше, посмотрите Kubernetes vs. Swarm.
От 10 до 100 контейнеров:
- Используйте ECS, если вы хотите контролировать размер экземпляров, количество контейнеров и некоторые дополнительные параметры службы ECS (мешок, который контролирует количество запущенных контейнеров и т. Д. Это ECS-эквивалент куба K8...)
- Используйте Fargate, если вы не хотите контролировать масштабирование и базовые экземпляры EC2; просто укажите определение задачи (как в случае с ECS), а все остальное AWS Fargate сделает автоматически.