如何使外部REST API(运行在我的主机上的.Net中)可以从Service或ExternalName在K8中访问



我在https://localhost:5001/something的笔记本电脑上本地运行了一个REST API。我希望通过K8s DNS名称在Kubernetes集群内部可以访问它。例如,在Pod中运行的应用程序可以使用some-service,而不需要整个Url。

此外,由于localhost是相对于主机的,我如何让ServiceExternalName在主机上到达localhost,而不是在K8s集群内?

我尝试了docker.host.internal(如这里所建议的(,但没有成功。K8s文档中的内容表明,它不可能是环回:

端点IP不得为:环回(对于IPv4为127.0.0.0/8,对于IPv6为:1/128(或链接本地(对于IPv4,为169.254.0.0/16和224.0.0.0/24,对于IPv6,为fe80::/64(。

我正在运行:

  • 主机:Ubuntu 20.04
  • K8s:k3d
  • Web API:(Linux上的.Net Core 3.1,由dotnet new webapi MyAPI创建(

Telepresence是一个为使用k8s集群快速本地测试应用程序而创建的工具。它允许您在本地运行单个服务,同时将其连接到远程Kubernetes集群。

它用双向网络代理代替了在Kubernetes集群中运行的普通pod。这个pod将Kubernetes环境中的数据(例如,TCP连接、环境变量、卷(代理到本地进程。本地进程的网络被透明地覆盖,以便DNS调用和TCP连接通过代理路由到远程Kubernetes集群。

另一种方法是创建由ssh server running in a pod支持的服务,并使用反向隧道打开与本地计算机的反向连接。

最新更新