Angularjs 网络::k8s中从角度到节点的错误连接超时

Angularjs 网络::k8s中从角度到节点的错误连接超时,angularjs,node.js,kubernetes,Angularjs,Node.js,Kubernetes,我正试图从集装箱化AngularJS前端向nodejs后端发出请求 两者都使用Kubernetes(KOPS)部署在AWS中。我创建了一个服务来访问这两者 前端类型为k8s服务中的LoadBalancer,后端类型为ClusterIP。我可以使用“kubectl get services”提供的负载平衡器的URL从浏览器访问前端。但当前端尝试向后端发出请求时,我收到以下错误: net::ERR_CONNECTION_TIMED_OUT or net::ERR_NAME_NOT_RESOLVED.

我正试图从集装箱化AngularJS前端向nodejs后端发出请求

两者都使用Kubernetes(KOPS)部署在AWS中。我创建了一个服务来访问这两者

前端类型为k8s服务中的LoadBalancer,后端类型为ClusterIP。我可以使用“kubectl get services”提供的负载平衡器的URL从浏览器访问前端。但当前端尝试向后端发出请求时,我收到以下错误:

net::ERR_CONNECTION_TIMED_OUT or net::ERR_NAME_NOT_RESOLVED. 

我使用telnet等进行了检查,应用程序正在运行,可以访问。从AngularJS/NodeJS直接访问主机名是可行的,但不可行

你的帖子没有提到具体细节,但如果我理解正确的话:

1. ELB -> Service -> Pod("http-server-serving-Angular")
2. ClusterIP -> Service -> Pod("nodejs")
对吗?因为如果是这样:

对于后端,它的集群

顾名思义,集群IP地址仅在集群内可用。您还希望后端服务的类型为LoadBalancer,这样不在集群中的流量就可以到达nodejs应用程序


我用这个答案欺骗了你一点点,因为你完全可以配置一个入口控制器,然后将其他服务作为ClusterIP离开,但我敢打赌这不是典型的设置。

我想我发现了问题。这是可能的原因。我正在使用express.js作为前端,它托管在nodejs中。我们编写了连接到后端主机的服务。这不是通过http服务器提供的,而是通过客户端的浏览器建立连接。我试着将公共ip添加到后端,它按预期工作。因此,有可能从nodejs web服务器修复它。 这不是库伯内特的问题。很抱歉添加了误导性标签


谢谢大家的回复

所以这个问题是nginx控制器中的错误规则。我的入口有打字错误,导致前端无法识别url。此问题已解决。

是以下格式的url,http(s)://somedomain:portnumber/?否,其位于服务的名称中。类似于http://:。u类似于http://\是服务器名称还是服务名称?服务名称。是的,您的回答是正确的。我们不是从集群外部访问后端。它只需要来自集群内部。问题是,当我尝试使用服务名称和端口从前端pod到后端使用telnet时,它是有效的。这意味着AngularJS的dns解析肯定有问题。如果我通过Curl使用服务名向后端发出请求,我可以看到一切都在运行。那么,AngularJS应用程序正在运行headless?如果是这样,它是在无头浏览器中,还是从nodejs本身运行?它在nodejs中运行。而且它不是无头的。