如何将 nginx 前端连接到 k8s 上的 aspnetcore 后端?
How to connect nginx frontend to aspnetcore backend on k8s?
你好吗?我在 kubernetes 中的前端和后端部署之间的连接遇到了问题。在我的 Nginx 前端中,我可以:
curl http://abphost
但在浏览器中我得到:
net::ERR_NAME_NOT_RESOLVED
- abphost 是一个 ClusterIP 服务。
- 我正在使用 NodePort 服务访问我的 nginx 前端。
But in the browser I'm getting:
当然,那是因为集群有自己的 DNS 服务器,称为 kube-dns,旨在解决 集群内部 通常没有任何意义的事情集群外。
认为 http://my-service.my-ns.svc.cluster.local
可以在没有 kube-dns
的 Servce
IP 作为其 DNS 解析器的任何地方工作的期望是不正确的。
如果你想访问后端服务,有两个技巧可以做到这一点:创建一个 type: NodePort
的第二个 Service
指向后端,并将你的浏览器指向那个新的NodePort
的端口,或
到目前为止,更合理和可扩展的解决方案是使用 Ingress controller 显示尽可能多的 Service
,使用您可能已经使用的相同 nginx virtual-hosting熟悉使用。这样你只需要花费 one NodePort
但可以暴露几乎无限的 Services
,并且可以非常非常精细地控制那些 Service
s 暴露了——使用 just type: NodePort
.
更难做到的事情
你好吗?我在 kubernetes 中的前端和后端部署之间的连接遇到了问题。在我的 Nginx 前端中,我可以:
curl http://abphost
但在浏览器中我得到:
net::ERR_NAME_NOT_RESOLVED
- abphost 是一个 ClusterIP 服务。
- 我正在使用 NodePort 服务访问我的 nginx 前端。
But in the browser I'm getting:
当然,那是因为集群有自己的 DNS 服务器,称为 kube-dns,旨在解决 集群内部 通常没有任何意义的事情集群外。
认为 http://my-service.my-ns.svc.cluster.local
可以在没有 kube-dns
的 Servce
IP 作为其 DNS 解析器的任何地方工作的期望是不正确的。
如果你想访问后端服务,有两个技巧可以做到这一点:创建一个 type: NodePort
的第二个 Service
指向后端,并将你的浏览器指向那个新的NodePort
的端口,或
到目前为止,更合理和可扩展的解决方案是使用 Ingress controller 显示尽可能多的 Service
,使用您可能已经使用的相同 nginx virtual-hosting熟悉使用。这样你只需要花费 one NodePort
但可以暴露几乎无限的 Services
,并且可以非常非常精细地控制那些 Service
s 暴露了——使用 just type: NodePort
.