Использование ресурсов в Docker Swarm и Mesos

Я запускаю свое приложение как контейнер докеров как в Docker Swarm UCP (используя файл compose.yml), так и в Mesos (используя файл marathon.json).

Я добавил ограничения ресурсов в оба файла.

compose.yml:

resources:
  limits:
    cpus: '0.50'
    memory: 50M
  reservations:
    cpus: '0.25'
    memory: 20M

marathon.json:

"cpus": 0.50,
"mem": 128.0,
"disk": 5.0

Я обнаружил, что память - это жесткий предел, а процессор - мягкий. то есть лимит процессора предназначен только для веса и приоритета. Если mesos cpu равен 1 и если два приложения работают, одно с 0,4 процессора, а другое с 0,6 процессора, то первое приложение получит 40% циклов процессора, а приложение 2 получит 60% циклов процессора.

Тогда какой здесь лимит и резервирование в файле compose.yml?

Теперь я пытаюсь понять то, что ниже

  1. Как именно работает эта ограниченность ресурсов?

  2. Что произойдет, если контейнер превысит эти значения?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
51
1

Ответы 1

reservations означает, что контейнер не запускается на узле этого узла, у которого недостаточно свободных ресурсов для соблюдения этого ограничения.

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

Другие вопросы по теме