【问题标题】:Kubernetes services with multiple ports具有多个端口的 Kubernetes 服务
【发布时间】:2017-09-20 08:26:26
【问题描述】:

我对多端口服务有疑问。我尝试公开两个端口,第一个有效,另一个无效。我正在使用 telnet(以及其他)对此进行测试,但我总是收到第二个端口的“连接被拒绝”。

这是服务的yaml中关于端口的部分:

spec:
 clusterIP: 10.97.153.249
 externalTrafficPolicy: Cluster
 ports:
 - name: port-1
   nodePort: 32714
   port: 8080
   protocol: TCP
   targetPort: 8080
 - name: port-2
   nodePort: 32715
   port: 17176
   protocol: TCP
   targetPort: 17176

【问题讨论】:

    标签: networking service kubernetes ports


    【解决方案1】:

    我首先确认 kubectl get svc 显示了两个 NodePort。如果是这种情况,那么 Pod 中的目标端口很可能无法正常工作。如果端口监听正确,您可以检查 pod 吗?然后,我还建议您也使用 ClusterIP 检查访问权限。

    【讨论】:

    • get svc 显示两个端口:“8080:32714/TCP,17175:32715/TCP”。但是 netstats -tulpen 只显示 8080 而不是另一个。使用 ClusterIP 检查访问是什么意思?
    • 你在哪里执行了 netstat 命令?如果它在 pod 中,那么 pod 中存在问题,即没有应用程序在该端口中侦听。如果你在host中执行了命令,那么那个8080就不是服务的8080了,都是基于iptables规则的。
    • 通过检查 ClusterIP,我的意思是访问像 10.97.153.249:17176 这样的服务。
    • 谢谢!查询我的应用程序一次后,我可以在 Pod 中看到 8080 和 17176 这两个端口。我仍然无法访问第二个(应该可以通过 nodePort 32715 访问,对吧?)。尝试通过 telnet 和 clusterIP(从集群内)访问服务会导致“没有到主机的路由”。
    • 等一下,你说 get svc 返回 8080:32714/TCP,17175:32715/TCP 但应该是 8080:32714/TCP,17176:32715/TCP 吧?
    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    相关资源
    最近更新 更多