Как Docker Swarm и Kubernetes проверяют свой управленческий выбор? - PullRequest
0 голосов
/ 19 ноября 2018

Docker Swarm и Kubernetes - две системы для управления приложениями на нескольких узлах.Если узел истощается или его нагрузка очень высока, они запускают некоторую процедуру для поддержания желаемого состояния, описанного в требованиях.

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

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

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

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

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

0 голосов
/ 20 ноября 2018

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

Также, если у вас есть такое поведение, когда во время какой-либо миграции ваше приложение использует короткий ресурс в течение короткого периода времени, и вы не хотите, чтобы Kubernetes перемещал эти модули куда угодно, вы могли бы начать использовать pod soft affinity you Приложение будет пытаться порождать только те ноды, которые вы хотите, и только если у него нет ресурсов или возможности, оно будет вызывать модуль в другом узле.

...