如何将 nginx 前端连接到 k8s 上的 aspnetcore 后端?

How to connect nginx frontend to aspnetcore backend on k8s?

你好吗?我在 kubernetes 中的前端和后端部署之间的连接遇到了问题。在我的 Nginx 前端中,我可以:

curl http://abphost

但在浏览器中我得到:

net::ERR_NAME_NOT_RESOLVED

But in the browser I'm getting:

当然,那是因为集群有自己的 DNS 服务器,称为 kube-dns,旨在解决 集群内部 通常没有任何意义的事情集群外

认为 http://my-service.my-ns.svc.cluster.local 可以在没有 kube-dnsServce IP 作为其 DNS 解析器的任何地方工作的期望是不正确的。

如果你想访问后端服务,有两个技巧可以做到这一点:创建一个 type: NodePort 的第二个 Service 指向后端,并将你的浏览器指向那个新的NodePort的端口,或

到目前为止,更合理和可扩展的解决方案是使用 Ingress controller 显示尽可能多的 Service,使用您可能已经使用的相同 nginx virtual-hosting熟悉使用。这样你只需要花费 one NodePort 但可以暴露几乎无限的 Services,并且可以非常非常精细地控制那些 Services 暴露了——使用 just type: NodePort.

更难做到的事情