2016-11-15 37 views
0

我有一个通过NodePort公开的nginx服务。根据文档,我现在应该能够在$NODE_IP:$NODE_PORT上为我所有的K8工作IP地址提供服务。但是,我只能通过在托管实际nginx窗格的节点上通过curl访问服务。任何想法为什么?Kubernetes - 通过NodePort公开的服务在所有节点上都不可用

我使用netstat验证了kube-proxy正在所有主机上监听$ NODE_PORT。不知何故,请求没有被kube-proxy转发给实际的pod。

+0

如果您正在运行kube dns,您可以始终通过servicename.namespace.svc.cluster.local访问您的服务 –

+0

@MattRickard - 在这种情况下,我希望在K8之外为其他非K8托管服务提供服务消耗。 – jeffreyveon

回答

0

事实证明,这是与工作人员相关的安全组的问题。我只打开了--service-node-port-range中的端口。这还不够,因为我在端口80上部署了nginx,而kube-proxy试图将请求转发到端口80上的pod的IP,但被阻止。

+0

嗨Jeffrey,我在https://stackoverflow.com/questions/44785402/configure-ingress-kubernetes-accessible-only-on-single-node面临类似的问题,请你提供一些建议吗? – Vikram

相关问题