Равномерно ли Kubernetes распределяется по кластеру ec2?

Итак, я пытаюсь понять распределение CPU и VM с помощью kubernetes, docker и AWS ecs. Это кажется правильным?

  1. Локально выполняется «docker compose» с несколькими службами:
    каждый контейнер добавляется к одной виртуальной машине Docker Machine. Вы можете выделить ресурсы ЦП из этой единственной виртуальной машины.

  2. AWS, работающий под управлением ECS, сгенерированный из docker compose:
    каждый контейнер (все они) добавляется в одну виртуальную машину ec2. Вы можете выделить ресурсы ЦП для этой единственной виртуальной машины. Тот факт, что вы развертываете кластер из 5 экземпляров ec2, не имеет значения, если вы вручную не «добавляете экземпляры» в свое приложение. Ваши 5 контейнеров будут использовать 1 ec2.

  3. AWS, на котором запущены кубернеты, используются контроллеры репликации и сервисные yamls:
    каждый контейнер get распределяется среди ВСЕХ ваших экземпляров ec2 в вашем кластере кубернетов ?????

Если я разверну кластер из 5 экземпляров ec2, а затем разверну 5 контроллеров / служб репликации, будут ли они фактически распределены по ec2? это кажется основным отличием от ECS и локальной разработки. Просто пытаюсь собрать верные факты.


person InfinteScroll    schedule 08.06.2016    source источник


Ответы (1)


Вот ответы на ваши вопросы:

1> Да, вы правы, у вас есть одна виртуальная машина, и любой контейнер, который вы запускаете, получит общие ресурсы процессора с этой единственной виртуальной машины. У вас также есть возможность создать кластер роя и попробовать. Docker составляет рой поддержки контейнеров, подключенных через оверлейную сеть, распределенную по нескольким виртуальным машинам.

2> Да, ваши контейнеры, определенные в одной задаче, попадут в один и тот же экземпляр ec2. Когда вы запускаете более одного экземпляра задачи, задачи распределяются по экземплярам части кластера. Ни одна из задач не должна иметь требования к ресурсам, превышающие максимальный ресурс, доступный на одном из ваших экземпляров ec2.

3> Kubernetes во многих аспектах более развит, чем ECS, но в случае распределения контейнеров он работает аналогично ecs. Модуль Kubernetes эквивалентен задаче ecs. Это один или группа контейнеров, размещенных на одной виртуальной машине. В kubernetes также не может быть, чтобы поду потребовались ресурсы, превышающие максимум, доступный на одном из ваших нижних вычислительных ресурсов.

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

Не следует приравнивать платформу докеров к платформе создания и управления виртуальными машинами. Все эти платформы докеров ожидают, что вы определите задачи, которые впишутся в виртуальные машины, и потребуют горизонтального масштабирования с увеличением количества задач, когда это необходимо. Kubernetes поставляется с функцией обнаружения служб, которая позволяет беспрепятственно маршрутизировать запросы к развернутым контейнерам с помощью DNS-запросов. Вам нужно будет создать собственное обнаружение сервисов с помощью swarm и ecs. CONSUL, EUREKA и т. Д. - это инструменты, которые вы можете использовать для того же.

person Shibashis    schedule 09.06.2016