如何在OpenShift for JMeter客户端中公开2个端口

时间:2019-01-28 13:19:52

标签: jmeter openshift

我构建了一个提供JMeter服务器的Docker映像。在Dockerfile中,我公开了2个端口,

[...] EXPOSE 1099 50000 [...]

在本地计算机上运行图像时,

docker run --rm --name [name] -d -p 1099:1099 -p 50000:50000 [name]

我可以从JMeter控制器访问服务器。

当我尝试在OpenShift中运行图像时,找不到在路线定义中公开2个端口的方法。似乎每个路由只允许一个端口。

与我的本地设置类似,OpenShift是否可以从客户端访问JMeter服务器?

2 个答案:

答案 0 :(得分:2)

在OpenShift中,有一个open issue支持每个路由多个端口

  

路由是否可以公开多个端口? #16529

有一种解决方法,可以为不同的端口定义多个路由

  

要在不同端口上具有多个路由器,请复制路由器YAML,更改每次出现的端口和路由器名称,然后将YAML导入为新路由器。

     

@tocosonic这样,您可以将同一主机用于不同的路由(因为不同的路由器将为不同的端口提供服务)

答案 1 :(得分:0)

假设您使用以下方法创建了一条路线

// Given some List<T> of entries to upsert...
List<SomePoco> SomePocos = GetListOfPocoFromSomewhere();
// This will match existing documents on a field called "Name".
await SomeMongoCollection.BulkUpsertAsync(SomePocos, filterField => filterField.Name);

这将获取服务名称,并将其用作路由名称并公开服务

oc获取路线

NAME。主机/端口。服务 。端口。
富。 foo.bar.com。富。 8080

假设您要在端口9000上创建另一个路由;如果您执行以下命令

oc expose srv foo --port 8080 --hostname foo.bar.com

您将收到以下错误 服务器错误(AlreadyExists):“ foo”已存在 如您所见,该命令使用了srv名称并将其也用作路由名称

相反,您可以执行以下操作以提供唯一的路线名称

oc expose srv foo --port 9000 --hostname api.foo.bar.com

服务的名称必须唯一,并且由于默认情况下服务名称也用作路由名称,因此另一个路由请求会引发异常。

您可以通过提供具有-name

的唯一名称来避免此异常