По умолчанию Docker Compose запускает набор контейнеров в одной системе. Если вам нужно запустить больше контейнеров, чем умещается в одной системе, или вы просто боитесь сбоя этой системы, вам потребуется более одной системы для этого. Кластер - это группа всех систем (физические компьютеры, виртуальные машины, облачные экземпляры), которые работают вместе для запуска контейнеров. Каждая из этих отдельных систем представляет собой узел .
Другая важная часть настроек контейнера кластера состоит в том, что вы обычно можете запустить несколько реплик данного контейнера и вам все равно, где в кластере они бегут. Допустим, у вас есть пять узлов и контейнер веб-сервера, и вы хотите запустить три его копии для обеспечения избыточности. Вместо того, чтобы выбирать узел, s sh для него и вручную docker run
там, вы просто говорите менеджеру кластера «запустить меня три из них», и он выбирает узел и запускает контейнер для вас. Вы также можете масштабировать контейнеры вверх и вниз во время выполнения или, возможно, настроить кластер на самостоятельное масштабирование в зависимости от нагрузки.
Если с вашей рабочей нагрузкой все в порядке, запустите одну копию контейнеров на одном сервере, вам не нужна настройка кластера. (У вас может быть некоторое время простоя во время обновлений или если один сервер умирает.) Swarm обладает преимуществами, связанными с Docker и возможностью использовать собственные инструменты Docker (docker-compose
можно развернуть в кластере Swarm). Kubernetes намного сложнее, но в этот момент большинство публикуемых c облачных провайдеров продаст вам предварительно сконфигурированный кластер Kubernetes, и у него будут лучшие истории в области безопасности, управления хранилищем и автоматического масштабирования. Есть также пара других менее заметных альтернатив, таких как Nomad и Mesos.