Kubernetes:暴露的部署无法访问的服务

时间:2017-05-06 23:52:41

标签: java kubernetes google-kubernetes-engine

我在Google容器引擎上部署了一个容器,运行正常。现在,我想公开它。

此应用程序是一个侦听2个端口的服务。使用kubectl公开部署,我创建了2个负载均衡器,每个端口一个。

我制作了2个负载均衡器,因为kubectl expose命令似乎不允许多个端口。虽然我在kubectl上将其定义为 type = LoadBalancer ,但是一旦在GKE上创建了它们,它们就被定义为与2个目标池相关联的转发规则,这些规则池也是由kubectl创建的。 kubectl还自动为每个平衡器制定防火墙规则。

我制作的第一个应用程序会暴露应用程序。我能够与应用程序通信并获得响应。

第二个根本没有连接。我一直得到连接拒绝或连接超时。为了解决这个问题,我进一步剥离了我的防火墙规则,尽可能地允许解决这个问题。由于允许使用ICMP,因此默认情况下,ping此平衡器的ip会导致回复。

kubernetes是否只允许一个负载均衡器工作,即使可以配置多个负载均衡器?如果重要的话,工作平衡器的外部IP是35.xxx.xxx.xxx模式,平衡器的ip不工作是107.xxx.xxx.xxx。

作为一个附带问题,有没有办法使用kubectl expose --port暴露多个端口,而不定义范围,即我只需要2个端口?

最后,我尝试使用Google控制台,但我无法获得负载均衡器,或转发规则以使用kubernetes上的内容,就像在kubectl上执行此操作一样。

这是我使用的命令,在第二次使用时修改端口和服务名称:

kubectl expose deployment myapp --name=my-app-balancer --type=LoadBalancer --port 62697 --selector="app=my-app"

我的防火墙规则基本上设置为允许所有传入的TCP连接超过0.0.0.0/0。

修改 外部知识产权与它无关。我一直在删除&重新创建平衡器,直到我获得工作平衡器的IP为xxx.xxx.xxx.xxx,并且平衡器仍然正常工作。

我还试图删除工作平衡器并重新创建一个不起作用的平衡器,看看它是否是平衡器之间的冲突。第二个平衡器仍然没有工作,即使它是唯一一个正在运行的平衡器。

我目前正在调查我的应用的第二项服务的代码,尽管它与第一项服务实际上是相同的,这是一个简单的ServerSocket实现,可以侦听定义的端口。

0 个答案:

没有答案
相关问题