我们有 3 台服务器,每台都运行 RHEL 7.6。每台机器有 64G RAM 和 15 个 CPU。
我们正准备在所有机器上安装一组服务 --- kafka
, zookeeper
, ---。schema registry
每个服务都基于一个 docker 容器。
我们计划在所有机器上安装docker,每台机器将有3个docker容器。
当所有容器都是操作系统磁盘的一部分时,docker 容器是否会产生负面影响?我们是否应该在每台机器上添加额外的磁盘并在添加的磁盘上分配 docker 容器?这里的最佳实践是什么?
答案1
我将从理论角度回答这个问题,我没有在 Docker 上使用 Kafka 的经验。
Docker很大程度上是一种隔离技术不是虚拟机。这意味着它的重量比您想象的要轻得多。其中很大一部分是围绕命名空间和安装座包括绑定安装。
这在一定程度上取决于你要求 Docker 做什么:
如果您使用绑定挂载或一个Docker 卷然后它们直接作为文件存储在主机系统上。它们的性能开销不应超过 Linux 绑定安装的性能开销,因为这正是您所得到的。这种性能开销接近于零。
其他存储卷,例如那些由亚马逊 S3 支持的可能会产生一定的开销。
简而言之,磁盘上的结果通常应该与在主机系统上运行的结果非常相似。 Docker 只是创建一个整洁的沙箱并将其称为容器。