Я запускаю Kubernetes 1.2.0 на ряде лабораторных машин. У машин есть своп. Поскольку машины используются и для других целей, я не могу отключить обмен в глобальном масштабе.Отключить обмен на кубе
Я наблюдаю следующую проблему: если я запускаю контейнер с ограничением памяти, контейнер начинает заменять его после достижения предела памяти. Я ожидаю, что контейнер будет убит.
В соответствии с this issue проблема была исправлена, но она по-прежнему встречается с Kubernetes 1.2.0. Если я проверю работающий контейнер с docker inspect
, то я вижу, что MemorySwap = -1
и MemorySwappiness = -1
. Если я запустил стручок с низкими пределами памяти, он начнет почти сразу заменять.
У меня были некоторые идеи, но я не мог понять, как сделать любой из них:
- Изменить настройки по умолчанию в Докер так ни один контейнер не разрешается менять
- Добавить параметр в Kubernetes контейнер конфигурации, поэтому она передает
--memory-swappiness=0
- скрипки с контрольной группой Докера и запретить подкачку группы
Как я могу предотвратить контейнеры, чтобы начать обмен?
«Материал все равно будет работать, но изоляция ресурсов не будет работать» - это не так. У меня есть работа, которая потенциально использует память 30 ГБ, с включенной возможностью обмена, для завершения требуется * дней *. Таким образом, разница в производительности огромна. Я создал Kubernetes для запуска заданий, пока машины не работают; когда машина используется, узел сливается автоматически. Хотя это не идеально, это будет отлично работать, если у меня не будет проблемы с обменом. – morxa