2015-11-26 3 views
36

Как Kubernetes Pods, так и результаты сценариев Docker Compose (отныне: «Композиции»), похоже, приводят к кластерам виртуальных компьютеров.Каковы различия между Kubernetes Pods и Docker Compose (s) (Composures?)

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

Учитывая сходство между двумя системами, я изо всех сил пытаюсь понять, каковы различия между ними.

Почему я должен выбирать один из них? Являются ли они взаимоисключающими системами или я могу запускать композиции в кубернетах.

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

ответ

36

docker compose это просто способ объявить контейнер, вы должны начать: это не имеет никакого понятия узла или кластера, если он не запускает мастер роя и роя узлов, но то есть docker swarm)
Обновление Июль 2016 года, 7 месяцев спустя: докер 1.12 размывает линии и includes a "swarm mode".

Он отличается от kubernetes инструментом Google для управления тысячами групп контейнеров под Pod, на десятках или сотнях машин.

Kubernetes Pod бы be closer from a docker swarm:

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

Как commented below по ealeon:

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

launch kubernetes commands with docker-compose by the way.

http://3.bp.blogspot.com/-MDUsXIy-lt0/VMuhJ9jBefI/AAAAAAAAA0I/qPuy0N8UXWA/s1600/Screen%2BShot%2B2015-01-30%2Bat%2B7.19.27%2BAM.png

С точки зрения того, как Kubernetes отличается от других систем управления контейнера там, такие как Swarm, Kubernetes является третьей итерации менеджеров кластера, Google разработал.

Вы можете узнать больше о кубернетах в episode #3 of Google Cloud Platform Podcast.

Хотя верно, что оба могут создавать многоконтейнерное приложение, Pod также служит в качестве единицы развертывания и горизонтального масштабирования/репликации, которое не обеспечивает компоновка докеров.
Кроме того, вы не создаете блок напрямую, а используете контроллеры (например, контроллеры репликации).

POD живет на более крупной платформе, которая предлагает совместное размещение (совместное планирование), совместное использование судьбы, скоординированную репликацию, совместное использование ресурсов и управление зависимостями.
Docker-compose lives ... самостоятельно, с его docker-compose.yml файлом

+1

Thanks Von. Из документа документации docker https://docs.docker.com/compose/ это способ создания многоконтейнерных приложений, а 'dockerfile' эквивалентен одной машине. Итак, POD ~ = COMPOSE (я думаю) –

+1

@AlexC True, но Pod также служит в качестве единицы развертывания и горизонтального масштабирования/репликации, которые не создаются докерером. Кроме того, вы не создаете pd напрямую, а используете контроллеры (например, контроллеры репликации). POD живет на более крупной платформе, которая предлагает совместное размещение (совместное планирование), совместное участие в судьбе, скоординированную репликацию, совместное использование ресурсов и управление зависимостями. Docker-compose живет ... сам по себе, с файлом docker-compose.yml. – VonC

+0

ahhh ... это имеет смысл. благодаря! Кажется, я понял это сейчас. –

Смежные вопросы