Что такое кластер и узел, ориентированный на контейнеры? - PullRequest
0 голосов
/ 20 февраля 2020

Извините за этот вопрос, но я только начал с Docker и Docker Compose , и мне действительно не нужно ничего этого, пока я не прочитал, что мне нужно использовать Docker Swarn или Kuebernetes для большей стабильности в производстве. Я начал читать о Docker Swarn, и они упомянули узлы и кластеры.

Я был действительно счастлив, не зная об этом, поскольку я понял docker-compose:

Это то, что я мог управлять Мои службы / контейнеры из одного файла, и для запуска, сборки, удаления и т. д. c требуется всего несколько команд. все мои сервисы основаны на docker -композиционной конфигурации.

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

Надеюсь, вы поможете мне и объясните мне это так, чтобы я мог понять.

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

По умолчанию Docker Compose запускает набор контейнеров в одной системе. Если вам нужно запустить больше контейнеров, чем умещается в одной системе, или вы просто боитесь сбоя этой системы, вам потребуется более одной системы для этого. Кластер - это группа всех систем (физические компьютеры, виртуальные машины, облачные экземпляры), которые работают вместе для запуска контейнеров. Каждая из этих отдельных систем представляет собой узел .

Другая важная часть настроек контейнера кластера состоит в том, что вы обычно можете запустить несколько реплик данного контейнера и вам все равно, где в кластере они бегут. Допустим, у вас есть пять узлов и контейнер веб-сервера, и вы хотите запустить три его копии для обеспечения избыточности. Вместо того, чтобы выбирать узел, s sh для него и вручную docker run там, вы просто говорите менеджеру кластера «запустить меня три из них», и он выбирает узел и запускает контейнер для вас. Вы также можете масштабировать контейнеры вверх и вниз во время выполнения или, возможно, настроить кластер на самостоятельное масштабирование в зависимости от нагрузки.

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

1 голос
/ 20 февраля 2020

A узел - это просто физическая или виртуальная машина.
В контексте Kubernetes / Docker Swarm каждый узел должен иметь соответствующие установленные двоичные файлы (Docker Engine, kubelet et c. .)

A cluster - это группа из одного или нескольких узлов.

Если вы только что тестировали на своей локальной машине, у вас есть один узел .

Если бы вы добавили вторую машину и связали обе машины вместе, используя docker swarm / kubernetes , то вы бы создали 2 узла кластера

Затем вы можете использовать docker swarm / kubernetes для запуска ваших сервисов / контейнеров на любом или всех узлах в вашем кластер . Это позволяет вашим службам быть более устойчивыми и отказоустойчивыми.

...