ingress控制器是如何提供dns名称的



我正在努力了解ingress控制器在kubernetes中是如何工作的。

我已经在裸机k8s集群上部署了nginx ingress控制器(参考kind-ingress文档(localhost现在指向nginx默认页面。

我已经部署了一个应用程序,该应用程序的入口资源的主机为"foolocalhost"。我现在可以在foo.localhost上访问我的应用程序了。

我想知道nginx是如何在不修改/etc/hosts文件的情况下做到这一点的。

我还想通过相同/不同的网络从不同的机器访问我的应用程序。

我已将ngrok用于此

ngrok http foo.localhost

但它指向nginx默认页面,而不是我的应用

如果我不想使用端口转发或kube代理,我如何使用ngrok访问它。

在您的机器上,localhostfoo.localhost都解析到同一地址127.0.0.1。这已经存在了,它不是nginx或k8s所做的。这就是为什么你不能从另一台机器访问它的原因,因为这个名称也解析为该机器的localhost,而不是运行你的k8s入口的那个。当您使用ngrok公开它时,它会使用不同的名称公开它。当您尝试使用该名称访问ingress时,请求包含一个带有ngrok URL的Host标头,该标头与foo.localhost不同,因此ingress认为该请求针对不同的域。

尝试使用ngrok url在ingress中公开本地主机。

相关内容

  • 没有找到相关文章

最新更新