
У нас есть 3 сервера, каждый из которых работает под управлением RHEL 7.6. Каждая машина имеет 64G RAM и 15 CPU.
Мы готовимся установить набор сервисов --- kafka
, zookeeper
, schema registry
--- на всех машинах. Каждый сервис основан на контейнере docker.
Мы планируем установить Docker на все машины, и на каждой машине будет по три Docker-контейнера.
Оказывают ли контейнеры docker негативное влияние, когда все контейнеры являются частью диска ОС? Стоит ли добавлять дополнительные диски на каждую машину и размещать контейнеры docker на дополнительном диске? Какая здесь лучшая практика?
решение1
Я отвечу с теоретической точки зрения, у меня нет опыта работы с Kafka на Docker.
Docker — это в значительной степени технология изоляции.НЕ виртуальная машина. Это означает, что он намного легче, чем вы могли бы ожидать. Большая его часть построена вокругпространства имени крепления, включаяпривязать крепления.
Это будет немного зависеть от того, что вы просите Docker сделать:
Если вы используетепривязать креплениеилиТом докеразатем они сохраняются непосредственно в виде файлов на хост-системе. Их накладные расходы на производительность не должны превышать расходы на монтирование Linux bind, потому что это именно то, что вы получаете. Эти накладные расходы на производительность близки к нулю.
Другие объемы хранения, такие какподдерживаемые amazon S3может повлечь за собой накладные расходы.
Короче говоря, результат на диске должен быть в целом очень похож на результат работы на хостовой системе. Docker просто создает аккуратную песочницу и называет ее контейнером.