我有两个容器(Docker):


TensorFlow容器
NodeJS容器用作TensorFlow容器的前端。

两个容器都有TCP侦听器在使用环境变量指定的端口上。

如果要缩放NodeJS和TensorFlow容器,例如2个NodeJS实例和4个TensorFlow实例,我有什么选择来连接它们以均匀分布

当前要在4个TensorFlow实例中加载吗?

当前我在NodeJS容器中使用TensorFlow容器名称,但是我很确定那只会利用单个TensorFlow容器...或者??

评论

superuser.openstack.org/articles/…

#1 楼

当然,平衡负载的经典答案是负载平衡器。有许多不同的方法可以做到这一点,但是我们对能与动态容器一起使用的方法感兴趣。

这是业务流程层将要解决的事情之一。例如,在Kubernetes中,您将创建一个Tensor Flow服务,并将其缩放到所需的任何Pod(或使用自动缩放!)。然后,Kubernetes为服务提供了一个ip,以在整个Pod上平衡kube-proxy负载。

#2 楼

您应该为任何容器分配一个特定的端口。
对于此配置,您可以使用docker-compose文件,例如以下示例:

version: '3'

services:
  TensorFlow-1:
      image: gcr.io/tensorflow/tensorflow:latest-gpu
      container_name: first-tensor
      ports:
        - "9001:8888"

  TensorFlow-2:
      image: gcr.io/tensorflow/tensorflow:latest-gpu
      container_name: second-tensor
      ports:
        - "9002:8888"


然后在docker-compose.yml路径中,在命令行上执行以下操作:

sudo docker-compose up




sudo docker-compose up -d  


注意:-d选项可在上面运行命令在后台。

最后有两个带有90019002端口的张量流容器。

评论


我看不到你如何告诉4个nginx容器将它们的负载分散到2个张量流中,而从这个简单的示例中扩展出来听起来很乏味

–滕西拜
18年6月21日在19:03

@Tensibai在这个答案上,我创建了两个简单的示例张量流容器,您可以使用9001、9002、9003、9004端口创建四个具有该比例的张量流容器。

–本雅明·贾法里(Benyamin Jafari)
18年6月21日在20:16

以及如何在其他容器中使用它呢?

–滕西拜
18年6月22日在6:20

@Tensibai码头工人有一个IP,每个容器都有一个特定的IP。这个例子中的Tensorflow容器端口是8888,我们有四个带有外部端口(9001、9002、9003、9004)的Tensorflow实例(容器)。如果要使用每个tensorflow容器,则必须使用:8888或使用:900X

–本雅明·贾法里(Benyamin Jafari)
2018年6月22日19:34



我将不再试图让您将这个答案编辑为可用的内容,而是在回答我眼中几乎没有价值的问题,因为这是基本的容器编排问题,您无法使用静态类型的名称/地址来解决最多容纳50个容器或更多容器时的docker文件

–滕西拜
18年6月22日在20:19